From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50627C5AD49 for ; Thu, 29 May 2025 15:54:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E267C6B0088; Thu, 29 May 2025 11:54:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D62296B0089; Thu, 29 May 2025 11:54:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C4F756B008A; Thu, 29 May 2025 11:54:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A8AE56B0088 for ; Thu, 29 May 2025 11:54:42 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5C136160B63 for ; Thu, 29 May 2025 15:54:42 +0000 (UTC) X-FDA: 83496393204.21.EEFCE86 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by imf30.hostedemail.com (Postfix) with ESMTP id 474D980004 for ; Thu, 29 May 2025 15:54:36 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf30.hostedemail.com: domain of pulehui@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=pulehui@huaweicloud.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748534080; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dME72x2TmNqEhijj1NgHVfwF19FhNJlyNvwa9+eZaZc=; b=7IVfnSBpysCXCq7+UGLGZ5tQR19sxDpo5SKWyqOfqz7m9rtDC883I3eHMjeWtxTGr0ZNgU oDUcEBnlddOWOhJQaagAdeDcw8XiOu51KcR9uBJ0V9zj+fEIyn2SCKVLCcYF6u3w17U4Ut Mp1WzB790II4ZLiQ5ueTF5sgqALbeko= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748534080; a=rsa-sha256; cv=none; b=7r9JbnepAyy9sqRNomED3heP2N4wbiy/RwlMKitc3hYM3NgODmWiFgvOUdXQXGgGxL04PK Ewn/XQ9X5o09qW+dRsPMFLWY7tFrYEG167JRlatkbdQDYTnOuMFzeCpIl92txNOGEO4rYd aW6w5yPUwQ+XsmOMjY3wMs3Or9wcyFo= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf30.hostedemail.com: domain of pulehui@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=pulehui@huaweicloud.com Received: from mail.maildlp.com (unknown [172.19.93.142]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4b7WCF21SszKHMmZ for ; Thu, 29 May 2025 23:54:33 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.252]) by mail.maildlp.com (Postfix) with ESMTP id ABA811A0D81 for ; Thu, 29 May 2025 23:54:31 +0800 (CST) Received: from ultra.huawei.com (unknown [10.90.53.71]) by APP3 (Coremail) with SMTP id _Ch0CgBX98EzgzhooMK5Ng--.57784S5; Thu, 29 May 2025 23:54:31 +0800 (CST) From: Pu Lehui To: mhiramat@kernel.org, oleg@redhat.com, peterz@infradead.org, akpm@linux-foundation.org, Liam.Howlett@oracle.com, lorenzo.stoakes@oracle.com, vbabka@suse.cz, jannh@google.com, pfalcato@suse.de Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, pulehui@huawei.com Subject: [PATCH v1 3/4] selftests/mm: Extract read_sysfs and write_sysfs into vm_util Date: Thu, 29 May 2025 15:56:49 +0000 Message-Id: <20250529155650.4017699-4-pulehui@huaweicloud.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250529155650.4017699-1-pulehui@huaweicloud.com> References: <20250529155650.4017699-1-pulehui@huaweicloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:_Ch0CgBX98EzgzhooMK5Ng--.57784S5 X-Coremail-Antispam: 1UD129KBjvJXoWxAr13Zw18urW7Kr43tw1kZrb_yoWrCFyxp3 WfJ34jgws7Kr13Jr15Aa4qgFyFkrs7JayUt397J34Ivr1UJrZ3WrWSka4jqrn8GrZY9rWf Aa4fJFZ3Cr1UJaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUP2b4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUWw A2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxS w2x7M28EF7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxV W8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v2 6rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMc Ij6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_ Jr0_Gr1lF7xvr2IYc2Ij64vIr41lFIxGxcIEc7CjxVA2Y2ka0xkIwI1lc7CjxVAaw2AFwI 0_Jw0_GFyl42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG 67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MI IYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E 14v26F4j6r4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr 0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU14x RDUUUUU== X-CM-SenderInfo: psxovxtxl6x35dzhxuhorxvhhfrp/ X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 474D980004 X-Stat-Signature: ues3uqth5fygzx7q84cy9m1xpnj5x5g8 X-Rspam-User: X-HE-Tag: 1748534076-944036 X-HE-Meta: U2FsdGVkX1+7MOfroOM/nR4o/2+tLNeTcYp7/dS4Vb/q1uI+plTd7ElC9pF1ij8XvSHMXHL/uFRMsPxanjrQirYQyGMV7FghKxLT+heUYv8Xl4UqIBK4WHbkNhB6LttFXFUzoEWYDAmSJwXTXn7tLoxhid1T1IGI6FQAdCdf7uNZLyxUBgLNw8UzDSwxRMHBU2EekJOmT05MT5y41ks67l8lLCAgLwMb6joCVHgVkrMuzwCgJLobHrwzKXqUWPrQ8FanNjXELqx0kyAoVNFFaM7eVsGa/wCmAdAXhVLZpizvMFYn1TYQ24udCukkXOStWQc/caIiMkVIQiUwg3vwGA71uIqeYgjZCqA2OuxCT4a0pbA7RVFha0QpJ0yujH6oFw9yBr/fqV+3/MfO8zebZHqp5rrmFU+2trvuNUFKTohWZJ5Fnu2vsdX31qSttAInRhdaQkiZt75TeXvHZAgG/dwuEm60mCx/kLEN2Kcy+oeIYKL1aa0drjLARwEZdweJ7RQiF4LMphwvXSDUW/snqr+nEC0VeaCUKgXNNhsI/IaVKwD5KSU7oV/74w/WwHMIJt4BngX6/8fN3xS4+XQCSTSheJCNUN7voRSPsUTtmIpvbt/4pKugqMBPe+ReRJuWWCKGRp5EpqXOsZJptZDpAW+90+hZrLQMhfaZetmQ73V6tht7UaM+YkR4V82bhZDGEjngwmw4V8ugGkyjQ6VMpv7pALpir4esBCIm7LQjbIB8H6GRYxP1eLJHR4cw+dDmxJt97m1WnuCBAoxXeV5sJs39uA8bcaLEpWMZlBmY3Xst3SKxdfPd6yZgVVbPnNMxQ7k2a8p8Mu99imyl6ubt+kLC8x5+pGh4sw7aRRxqxsBxJU74/SMy33UHkbCALDNntzO0+F7I02Bgt+Mygnkq3s2MG1KNiYvz9dFDfTdVpfvrxpkrHI+oLz83nX8iRFW4wncvhN7pXvW7sLvvHEE O8IzTYWq 1+82vBVczvMz6lhJ6tWI5ed57hxqzuBn7hazucfB0RFa7uky5FbWEZMILJAb9ymMMFiF3MwEkdfadxHuS5/uyjsZolrwxcZ5Wf8FSTIGmkFw1SgBHmVnESvX1HBDVisL6ypAb/PRPal7o2+dAgPqTy7CKowslWdFlwml6hSQ4mIXs7A7ORKgQqxKUZQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Pu Lehui Extract read_sysfs and write_sysfs into vm_util. Meanwhile, rename the function in thuge-gen that has the same name as read_sysfs. Signed-off-by: Pu Lehui --- tools/testing/selftests/mm/ksm_tests.c | 32 ++-------------------- tools/testing/selftests/mm/thuge-gen.c | 6 ++-- tools/testing/selftests/mm/vm_util.c | 38 ++++++++++++++++++++++++++ tools/testing/selftests/mm/vm_util.h | 2 ++ 4 files changed, 45 insertions(+), 33 deletions(-) diff --git a/tools/testing/selftests/mm/ksm_tests.c b/tools/testing/selftests/mm/ksm_tests.c index dcdd5bb20f3d..e80deac1436b 100644 --- a/tools/testing/selftests/mm/ksm_tests.c +++ b/tools/testing/selftests/mm/ksm_tests.c @@ -58,40 +58,12 @@ int debug; static int ksm_write_sysfs(const char *file_path, unsigned long val) { - FILE *f = fopen(file_path, "w"); - - if (!f) { - fprintf(stderr, "f %s\n", file_path); - perror("fopen"); - return 1; - } - if (fprintf(f, "%lu", val) < 0) { - perror("fprintf"); - fclose(f); - return 1; - } - fclose(f); - - return 0; + return write_sysfs(file_path, val); } static int ksm_read_sysfs(const char *file_path, unsigned long *val) { - FILE *f = fopen(file_path, "r"); - - if (!f) { - fprintf(stderr, "f %s\n", file_path); - perror("fopen"); - return 1; - } - if (fscanf(f, "%lu", val) != 1) { - perror("fscanf"); - fclose(f); - return 1; - } - fclose(f); - - return 0; + return read_sysfs(file_path, val); } static void ksm_print_sysfs(void) diff --git a/tools/testing/selftests/mm/thuge-gen.c b/tools/testing/selftests/mm/thuge-gen.c index a41bc1234b37..95b6f043a3cb 100644 --- a/tools/testing/selftests/mm/thuge-gen.c +++ b/tools/testing/selftests/mm/thuge-gen.c @@ -77,7 +77,7 @@ void show(unsigned long ps) system(buf); } -unsigned long read_sysfs(int warn, char *fmt, ...) +unsigned long thuge_read_sysfs(int warn, char *fmt, ...) { char *line = NULL; size_t linelen = 0; @@ -106,7 +106,7 @@ unsigned long read_sysfs(int warn, char *fmt, ...) unsigned long read_free(unsigned long ps) { - return read_sysfs(ps != getpagesize(), + return thuge_read_sysfs(ps != getpagesize(), "/sys/kernel/mm/hugepages/hugepages-%lukB/free_hugepages", ps >> 10); } @@ -195,7 +195,7 @@ void find_pagesizes(void) } globfree(&g); - if (read_sysfs(0, "/proc/sys/kernel/shmmax") < NUM_PAGES * largest) + if (thuge_read_sysfs(0, "/proc/sys/kernel/shmmax") < NUM_PAGES * largest) ksft_exit_fail_msg("Please do echo %lu > /proc/sys/kernel/shmmax", largest * NUM_PAGES); diff --git a/tools/testing/selftests/mm/vm_util.c b/tools/testing/selftests/mm/vm_util.c index 1357e2d6a7b6..d899c272e0ee 100644 --- a/tools/testing/selftests/mm/vm_util.c +++ b/tools/testing/selftests/mm/vm_util.c @@ -486,3 +486,41 @@ int close_procmap(struct procmap_fd *procmap) { return close(procmap->fd); } + +int write_sysfs(const char *file_path, unsigned long val) +{ + FILE *f = fopen(file_path, "w"); + + if (!f) { + fprintf(stderr, "f %s\n", file_path); + perror("fopen"); + return 1; + } + if (fprintf(f, "%lu", val) < 0) { + perror("fprintf"); + fclose(f); + return 1; + } + fclose(f); + + return 0; +} + +int read_sysfs(const char *file_path, unsigned long *val) +{ + FILE *f = fopen(file_path, "r"); + + if (!f) { + fprintf(stderr, "f %s\n", file_path); + perror("fopen"); + return 1; + } + if (fscanf(f, "%lu", val) != 1) { + perror("fscanf"); + fclose(f); + return 1; + } + fclose(f); + + return 0; +} diff --git a/tools/testing/selftests/mm/vm_util.h b/tools/testing/selftests/mm/vm_util.h index 9211ba640d9c..f84c7c4680ea 100644 --- a/tools/testing/selftests/mm/vm_util.h +++ b/tools/testing/selftests/mm/vm_util.h @@ -87,6 +87,8 @@ int open_procmap(pid_t pid, struct procmap_fd *procmap_out); int query_procmap(struct procmap_fd *procmap); bool find_vma_procmap(struct procmap_fd *procmap, void *address); int close_procmap(struct procmap_fd *procmap); +int write_sysfs(const char *file_path, unsigned long val); +int read_sysfs(const char *file_path, unsigned long *val); static inline int open_self_procmap(struct procmap_fd *procmap_out) { -- 2.34.1