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 CCCE6C61CE7 for ; Wed, 11 Jun 2025 09:55:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59EBA6B0088; Wed, 11 Jun 2025 05:55:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 54FA06B0089; Wed, 11 Jun 2025 05:55:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 43FAE6B008A; Wed, 11 Jun 2025 05:55:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 254D76B0088 for ; Wed, 11 Jun 2025 05:55:19 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A6B481206D1 for ; Wed, 11 Jun 2025 09:55:18 +0000 (UTC) X-FDA: 83542661916.08.A3F11BC Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by imf17.hostedemail.com (Postfix) with ESMTP id 01D554000C for ; Wed, 11 Jun 2025 09:55:13 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf17.hostedemail.com: domain of pulehui@huaweicloud.com designates 45.249.212.51 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=1749635716; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dA/S+WzVSPV0UrDzomzpnihgnqWLGTAO0rU1tEkkwpo=; b=FZmrPfb4+frEhV7GTme/e/NvOfBziy5t4/7CQ0Z9ykF6zsYg3jfcTELiSdKUQJ3+orYung knB4hVw9cpUy/lpOa87SHe+wNF0fmSNedj7G9N4GjAbBYhKtfDWbrULEMOsT/5j+vN2ROE k6xH3feryfobuKyviKOJDO/J26M+y74= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749635716; a=rsa-sha256; cv=none; b=jwJOeT/5jt2UIvB5RI8Jv5hmuzMSmRDRksNPa5aL7eDCRR8yhusV6Kga/e78HL+g+TQTA/ wNWzU/1cPZTyMcpoV12a2NtzfueVTDSnAYmZlV1nFF5MKNRS8DCfkp/gSGpy3hch9buRq0 O8DiCibN3n8R6yA9uiuq4OOv2pD9LLM= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf17.hostedemail.com: domain of pulehui@huaweicloud.com designates 45.249.212.51 as permitted sender) smtp.mailfrom=pulehui@huaweicloud.com Received: from mail.maildlp.com (unknown [172.19.163.216]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTPS id 4bHLcY60ljzYQvRf for ; Wed, 11 Jun 2025 17:55:09 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.128]) by mail.maildlp.com (Postfix) with ESMTP id D174D1A18CD for ; Wed, 11 Jun 2025 17:55:08 +0800 (CST) Received: from [10.67.109.184] (unknown [10.67.109.184]) by APP4 (Coremail) with SMTP id gCh0CgDHKF17UkloXOW4PA--.40312S2; Wed, 11 Jun 2025 17:55:08 +0800 (CST) Message-ID: <0dc9c413-c979-4d18-b804-00ed2aaa3d3c@huaweicloud.com> Date: Wed, 11 Jun 2025 17:55:07 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] selftests/mm: Use generic read_sysfs in thuge-gen test Content-Language: en-US To: Lorenzo Stoakes Cc: akpm@linux-foundation.org, shuah@kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, pulehui@huawei.com References: <20250611084011.1047132-1-pulehui@huaweicloud.com> <097fa60d-cb5c-4f0b-a2b1-db22b26cc49b@huaweicloud.com> <1fad971c-dd57-4fa9-b951-10f749829c10@lucifer.local> From: Pu Lehui In-Reply-To: <1fad971c-dd57-4fa9-b951-10f749829c10@lucifer.local> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-CM-TRANSID:gCh0CgDHKF17UkloXOW4PA--.40312S2 X-Coremail-Antispam: 1UD129KBjvJXoWxXFy5trW7KFyfXFWrKFWDtwb_yoWrWFW8pF s5JFyjkF40qryUGryjqFn09r1Yyr4UtFW8Xw4xA34UZr1DtF9IgF4xJryUG3WkurWxWr4f Z3y3Grsa9r15JaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUylb4IE77IF4wAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Cr0_Gr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I 0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40E x7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x 0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lc7CjxVAaw2AFwI0_JF0_Jw1l42xK82IYc2Ij64vI r41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8Gjc xK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0 cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42xK8V AvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E 14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUwxhLUUUUU X-CM-SenderInfo: psxovxtxl6x35dzhxuhorxvhhfrp/ X-Stat-Signature: borr48iikkco86amftcfhdazx6us471g X-Rspamd-Queue-Id: 01D554000C X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1749635713-497390 X-HE-Meta: U2FsdGVkX185ZcNwGVNCbGpNL/qhPuzLlgi7psymdz9ccjtvrFAVkzcCyBYd74swjvFIAKTvAbdyoFqseuO6rtez8D82/IRjC+/51FSx5zzh3r8iq41pB3yvf/C74WEJomo7A1zB2xuiPL4BbNJG1ouWV4tjggEO6YuAPI50ZKaUAEfx/EBCOpcYSnFAJstuwXwxi6q4/Nm47UJau5N+B+TTRy0AgfwI/AkdMQGF7nZ2ypKLlwWsxe7j8jkhuMAk2TWdb/kXPxasnf6OMbaXg8W65fWGvkjRxLidXDfeVHOyqq1VqroWIHt0pOLPDd1xFPn019hNP5MCQxlMcV5ze3ZQ2kNRXDY6fmlieEWZSWIc10he9R202hYgyyyAwbjeoGRvR0PWuPRqTpGJWKqpxoNvnQSf+ayQu7/6ZdmJCHKNLzcn/dZTzrMyS7BwjzzkG9b/Pjl903IHwp+a4odxkmkbU3O1VfHRRfH8KcAqCoif5pFDVDmNsOEkG6BTAiejX8nilSdGYrxDuoMEIeWN/U/RB5XwMJCILtg6l0I7PrKjhmyaYmkGWH8RRllQksmhmwHjetpsqtAF6ZYQGg3SEOwuR0NkzbFNinn+5AL/M+1P4X9QW2JdLdYh6nyXuSdglJlXhOQfVr8LlwqZExhL6shvAAKHEKG0gOocxrNFZbsTbbYy+fWMB2oRxC9g8Ap4lXgK0znNfwxwUAcDsXW95DEPP4TMpcWgWZvSa4zp1qUGgzemk/ZTjKTiU0wbWFagGC5dQRBeVkf4VVmYxolMlCStvOeOmgC9gXtgHfQl0nhprl3KOL6WZo2dMw/M7fiUd7U8+Rls39n+NJh1HJ7s0VEq77/FTQoTMtjEoWTlHc5IRfYKNIS2fUaPxak2mgddX8Eqt8wXJLtjR1SiwjH1OQb6jvbzMJ3URBm2cacEVHQQ+dqNnkM/WebMQ4eYT9N2f7r8k7wnnRprb09z/7b NDdSUH/e rTSDxZVpQQNaUu/jIqg9J0kqAnTNwJOIxQFJd8mSPLHiB376Cz/uMRUji+l5FbfdyFdUrmOVeOa8wqefe4ud/vmjbHof6p5+ujkGGy/f9CPU6B1LgVYII/eWggASSrF508YL5W4DJPQraTDYwlwh2xA0ZP0j8r1LuCuPmHZqq9CM/E+Wi04hJT3WftfPmsTLFD++673n/7WmXrGKrVxPBYJFgbrj03B6hHZkC+Eorf/mLX3pV7FEAvvBtjJghM/wjcyS6 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: On 2025/6/11 17:48, Lorenzo Stoakes wrote: > On Wed, Jun 11, 2025 at 05:40:06PM +0800, Pu Lehui wrote: >> >> >> On 2025/6/11 17:18, Lorenzo Stoakes wrote: >>> On Wed, Jun 11, 2025 at 08:40:11AM +0000, Pu Lehui wrote: >>>> From: Pu Lehui >>>> >>>> As generic read_sysfs is available in vm_utils, let's >>>> use is in thuge-gen test. >>>> >>>> Signed-off-by: Pu Lehui > > With the fix below: > > Reviewed-by: Lorenzo Stoakes will send new soon, thanks! > >>> >>> It generally looks good, just one point about a warning below to address. >>> >>>> --- >>>> tools/testing/selftests/mm/thuge-gen.c | 37 +++++++------------------- >>>> 1 file changed, 9 insertions(+), 28 deletions(-) >>>> >>>> diff --git a/tools/testing/selftests/mm/thuge-gen.c b/tools/testing/selftests/mm/thuge-gen.c >>>> index 95b6f043a3cb..e11dfbfa661b 100644 >>>> --- a/tools/testing/selftests/mm/thuge-gen.c >>>> +++ b/tools/testing/selftests/mm/thuge-gen.c >>>> @@ -77,40 +77,19 @@ void show(unsigned long ps) >>>> system(buf); >>>> } >>>> >>>> -unsigned long thuge_read_sysfs(int warn, char *fmt, ...) >>>> +unsigned long read_free(unsigned long ps) >>>> { >>>> - char *line = NULL; >>>> - size_t linelen = 0; >>>> - char buf[100]; >>>> - FILE *f; >>>> - va_list ap; >>>> unsigned long val = 0; >>>> + char buf[100]; >>>> >>>> - va_start(ap, fmt); >>>> - vsnprintf(buf, sizeof buf, fmt, ap); >>>> - va_end(ap); >>>> + snprintf(buf, sizeof(buf), >>>> + "/sys/kernel/mm/hugepages/hugepages-%lukB/free_hugepages", >>>> + ps >> 10); >>>> + read_sysfs(buf, &val); >>> >>> We're losing all of the 'warn' logic here so if we can't find >>> /sys/kernel/mm/hugepages/hugepages-%lukB/free_hugepages when ps != getpagesize() >>> we no longer print a message about it. >> >> >> Hi Lorenzo, >> >> Thanks for review. Right, we should explicit that warning when ps != >> getpagesize(). How about the following modify? > > Looks good to me! > >> >> diff --git a/tools/testing/selftests/mm/thuge-gen.c >> b/tools/testing/selftests/mm/thuge-gen.c >> index e11dfbfa661b..8e2b08dc5762 100644 >> --- a/tools/testing/selftests/mm/thuge-gen.c >> +++ b/tools/testing/selftests/mm/thuge-gen.c >> @@ -85,7 +85,8 @@ unsigned long read_free(unsigned long ps) >> snprintf(buf, sizeof(buf), >> "/sys/kernel/mm/hugepages/hugepages-%lukB/free_hugepages", >> ps >> 10); >> - read_sysfs(buf, &val); >> + if (read_sysfs(buf, &val) && ps != getpagesize()) >> + ksft_print_msg("missing %s\n", buf); >> >> return val; >> } >> >>> >>> Should we reinstate that? >>> >>> Other than this, we're ignoring errors, which by default means we return 0, but >>> this is what we were doing anyway. It's only this case I think that matters. >>> >>>> >>>> - f = fopen(buf, "r"); >>>> - if (!f) { >>>> - if (warn) >>>> - ksft_print_msg("missing %s\n", buf); >>>> - return 0; >>>> - } >>>> - if (getline(&line, &linelen, f) > 0) { >>>> - sscanf(line, "%lu", &val); >>>> - } >>>> - fclose(f); >>>> - free(line); >>>> return val; >>>> } >>>> >>>> -unsigned long read_free(unsigned long ps) >>>> -{ >>>> - return thuge_read_sysfs(ps != getpagesize(), >>>> - "/sys/kernel/mm/hugepages/hugepages-%lukB/free_hugepages", >>>> - ps >> 10); >>>> -} >>>> - >>>> void test_mmap(unsigned long size, unsigned flags) >>>> { >>>> char *map; >>>> @@ -173,6 +152,7 @@ void test_shmget(unsigned long size, unsigned flags) >>>> void find_pagesizes(void) >>>> { >>>> unsigned long largest = getpagesize(); >>>> + unsigned long shmmax_val = 0; >>>> int i; >>>> glob_t g; >>>> >>>> @@ -195,7 +175,8 @@ void find_pagesizes(void) >>>> } >>>> globfree(&g); >>>> >>>> - if (thuge_read_sysfs(0, "/proc/sys/kernel/shmmax") < NUM_PAGES * largest) >>>> + read_sysfs("/proc/sys/kernel/shmmax", &shmmax_val); >>>> + if (shmmax_val < NUM_PAGES * largest) >>>> ksft_exit_fail_msg("Please do echo %lu > /proc/sys/kernel/shmmax", >>>> largest * NUM_PAGES); >>>> >>>> -- >>>> 2.34.1 >>>> >>