From nobody Mon Sep 28 23:13:08 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6489B376BF4; Sat, 15 Aug 2026 08:08:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786781285; cv=none; b=gaU9K7SubFGeTylLaDgeYX0BrkGHK4ikyMO/2tEAgYjlO0XUV50Hxekjlncv9a0Pw+MRyuNgPZYgqfQBH0aFh45YgkCWFMP4GLN+hvul4huq1/mr15i/QrOSOqFFg892v63GO/ru0aX0rpp+TiLlxH0T0NuV3HI1NyepL55RMds= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786781285; c=relaxed/simple; bh=WLVkkpuAg3YiQPwaVBQWDq0Uw/ykuGTkm8WFkKPeIKI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BEP0d6rNAkMHjeCOhQY0V4RTZhPOdAYNL4EO8g/j5OhOuwebdrvdO7HvNhjGqcYypwGDzQcSg0aJECSnht6z3oO/GR9ZP3B0f8T6MfNmOdUlmS3wxuB4mGfiqzA07mGhmUqjZOGlRG7J84z6ywqGnx0Wlgoi/0u/vhj7Zp+f5yk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 69a7392c988011f19a56ed5b684f684d-20260815 X-CTIC-Tags: HR_CC_COUNT, HR_CC_DOMAIN_COUNT, HR_CC_NAME, HR_CC_NO_NAME, HR_CTE_8B HR_CTT_MISS, HR_DATE_H, HR_DATE_WKD, HR_DATE_ZONE, HR_FROM_NAME HR_SJ_DIGIT_LEN, HR_SJ_LANG, HR_SJ_LEN, HR_SJ_LETTER, HR_SJ_NOR_SYM HR_SJ_PHRASE, HR_SJ_PHRASE_LEN, HR_SJ_WS, HR_TO_COUNT, HR_TO_DOMAIN_COUNT HR_TO_NO_NAME, IP_UNTRUSTED, SRC_UNTRUSTED, IP_LOWREP, SRC_LOWREP DN_TRUSTED, SRC_TRUSTED, SA_TRUSTED, SA_EXISTED, SN_TRUSTED SN_EXISTED, SPF_NOPASS, DKIM_NOPASS, DMARC_NOPASS, CIE_GOOD CIE_GOOD_SPF, GTI_FG_BS, GTI_RG_INFO, GTI_C_BU, AMN_GOOD X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.19,REQID:a5d96d70-7fe1-4011-a016-b67bdbebf0ba,IP:10, URL:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:35 X-CID-INFO: VERSION:1.3.19,REQID:a5d96d70-7fe1-4011-a016-b67bdbebf0ba,IP:10,UR L:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:35 X-CID-META: VersionHash:7db8b62,CLOUDID:24bc5c46d6504473acb36b29fdce81f1,BulkI D:2608151607574OR9VXI4,BulkQuantity:0,SF:17|19|38|66|78|81|82|102|127|865| 898,TC:nil,Content:0|15|50,EDM:5,IP:-2,URL:0,File:nil,RT:nil,Bulk:nil,QS:n il,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC :0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_FAS,TF_CID_SPAM_FSD,TF_CID_SPAM_SNR X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 69a7392c988011f19a56ed5b684f684d-20260815 X-User: husong@kylinos.cn Received: from ctao-book.. [(111.162.215.50)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA with TLSv1.3 TLS_AES_256_GCM_SHA384 256/256) with ESMTP id 953653928; Sat, 15 Aug 2026 16:07:52 +0800 From: Song Hu To: akpm@linux-foundation.org, rppt@kernel.org, sarthak.sharma@arm.com Cc: linux-mm@kvack.org, shuah@kernel.org, david@kernel.org, ljs@kernel.org, liam@infradead.org, vbabka@kernel.org, surenb@google.com, mhocko@suse.com, peterx@redhat.com, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Song Hu Subject: [PATCH v2 1/3] selftests/mm: emit TAP header in uffd-wp-mremap Date: Sat, 15 Aug 2026 16:07:14 +0800 Message-ID: <20260815080716.3596514-2-husong@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260815080716.3596514-1-husong@kylinos.cn> References: <20260815080716.3596514-1-husong@kylinos.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" uffd-wp-mremap calls ksft_set_plan() without ksft_print_header(), so its output is not valid KTAP. Add the header, like the sibling uffd tests (uffd-stress, uffd-unit-tests). Acked-by: Mike Rapoport (Microsoft) Reviewed-by: Sarthak Sharma Signed-off-by: Song Hu Acked-by: Lorenzo Stoakes (ARM) Reviewed-by: Muhammad Usama Anjum Tested-by: Muhammad Usama Anjum --- tools/testing/selftests/mm/uffd-wp-mremap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/testing/selftests/mm/uffd-wp-mremap.c b/tools/testing/se= lftests/mm/uffd-wp-mremap.c index c973d6722720..572c2516e874 100644 --- a/tools/testing/selftests/mm/uffd-wp-mremap.c +++ b/tools/testing/selftests/mm/uffd-wp-mremap.c @@ -347,6 +347,8 @@ int main(int argc, char **argv) struct thp_settings settings; int i, j, plan =3D 0; =20 + ksft_print_header(); + hugepage_save_settings(true, true); =20 check_uffd_wp_feature_supported(); --=20 2.43.0 From nobody Mon Sep 28 23:13:08 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88F3529A31C; Sat, 15 Aug 2026 08:08:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786781286; cv=none; b=Vtg+zq0ETOvopLX/ou9YfCrUmv2axrrK6nOypcmclcD2xgwNUxPqvbSzGVWIs5E8/GPY6ql/UV2nbj4Vcxk+Qe8EIbCnKoZSTPYyA3+Wk+KBtaoXyopcpfat2DqxoksQV4Aua7J4XJCmZC4BUaZOVHr8vy5Rog0wSSdotK+kTn8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786781286; c=relaxed/simple; bh=oHB39jGIuutbt99cRGk8+TvF768bAhAez+d1/Ty8/e0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=auYZ1Git044bEEkL9IZsNTKqPo0Oroaiikx0bvxu4C6GPPO00kofTY4Q3qiS+ZIByOqeFnieLKM4hi39Lla+3vzIPOQ5Z3uPyRqmpWAI63oZcDPRfw13ln3vXXEuXFN2shESs08cOSqeRgNj4itl98jmLN6FlFmJqxkjUaflEAI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 6aa25730988011f19a56ed5b684f684d-20260815 X-CTIC-Tags: HR_CC_COUNT, HR_CC_DOMAIN_COUNT, HR_CC_NAME, HR_CC_NO_NAME, HR_CTE_8B HR_CTT_MISS, HR_DATE_H, HR_DATE_WKD, HR_DATE_ZONE, HR_FROM_NAME HR_SJ_DIGIT_LEN, HR_SJ_LANG, HR_SJ_LEN, HR_SJ_LETTER, HR_SJ_NOR_SYM HR_SJ_PHRASE, HR_SJ_PHRASE_LEN, HR_SJ_WS, HR_TO_COUNT, HR_TO_DOMAIN_COUNT HR_TO_NO_NAME, IP_UNTRUSTED, SRC_UNTRUSTED, IP_LOWREP, SRC_LOWREP DN_TRUSTED, SRC_TRUSTED, SA_TRUSTED, SA_EXISTED, SN_TRUSTED SN_EXISTED, SPF_NOPASS, DKIM_NOPASS, DMARC_NOPASS, CIE_GOOD CIE_GOOD_SPF, GTI_FG_BS, GTI_RG_INFO, GTI_C_BU, AMN_GOOD X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.19,REQID:d19931cf-85b6-48ad-a805-7c5ad5406e08,IP:10, URL:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:35 X-CID-INFO: VERSION:1.3.19,REQID:d19931cf-85b6-48ad-a805-7c5ad5406e08,IP:10,UR L:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:35 X-CID-META: VersionHash:7db8b62,CLOUDID:6ddafd9b30580e56c19e832e4de2a2d7,BulkI D:260815160757TYUWJR19,BulkQuantity:0,SF:17|19|38|66|78|81|82|102|127|865| 898,TC:nil,Content:0|15|50,EDM:5,IP:-2,URL:0,File:nil,RT:nil,Bulk:nil,QS:n il,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC :0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 6aa25730988011f19a56ed5b684f684d-20260815 X-User: husong@kylinos.cn Received: from ctao-book.. [(111.162.215.50)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA with TLSv1.3 TLS_AES_256_GCM_SHA384 256/256) with ESMTP id 5729612; Sat, 15 Aug 2026 16:07:53 +0800 From: Song Hu To: akpm@linux-foundation.org, rppt@kernel.org, sarthak.sharma@arm.com Cc: linux-mm@kvack.org, shuah@kernel.org, david@kernel.org, ljs@kernel.org, liam@infradead.org, vbabka@kernel.org, surenb@google.com, mhocko@suse.com, peterx@redhat.com, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Song Hu Subject: [PATCH v2 2/3] selftests/mm: emit TAP header and use TAP skip in mremap_test Date: Sat, 15 Aug 2026 16:07:15 +0800 Message-ID: <20260815080716.3596514-3-husong@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260815080716.3596514-1-husong@kylinos.cn> References: <20260815080716.3596514-1-husong@kylinos.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" mremap_test calls ksft_set_plan() without ksft_print_header(), and its get_mmap_min_addr() skip path uses a bare exit(KSFT_SKIP) that prints no TAP line, so its output is not valid KTAP. Add the header and switch the skip to ksft_exit_skip(). Also fix two more KTAP compliance issues spotted in review: - get_mmap_min_addr() calls strerror(errno) after fclose(), which may clobber errno; save errno before fclose() instead. - Some ksft_*() messages embed "\n\t", so the text after each embedded newline is printed without the "# " prefix. Split those into separate messages. Acked-by: Mike Rapoport (Microsoft) Reviewed-by: Sarthak Sharma Signed-off-by: Song Hu Acked-by: Lorenzo Stoakes (ARM) --- tools/testing/selftests/mm/mremap_test.c | 41 +++++++++++++----------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/tools/testing/selftests/mm/mremap_test.c b/tools/testing/selft= ests/mm/mremap_test.c index 131d9d6db867..28f151daabe4 100644 --- a/tools/testing/selftests/mm/mremap_test.c +++ b/tools/testing/selftests/mm/mremap_test.c @@ -111,18 +111,17 @@ static unsigned long long get_mmap_min_addr(void) return addr; =20 fp =3D fopen("/proc/sys/vm/mmap_min_addr", "r"); - if (fp =3D=3D NULL) { - ksft_print_msg("Failed to open /proc/sys/vm/mmap_min_addr: %s\n", - strerror(errno)); - exit(KSFT_SKIP); - } + if (!fp) + ksft_exit_skip("Failed to open /proc/sys/vm/mmap_min_addr: %s\n", + strerror(errno)); =20 n_matched =3D fscanf(fp, "%llu", &addr); if (n_matched !=3D 1) { - ksft_print_msg("Failed to read /proc/sys/vm/mmap_min_addr: %s\n", - strerror(errno)); + int err =3D errno; + fclose(fp); - exit(KSFT_SKIP); + ksft_exit_skip("Failed to read /proc/sys/vm/mmap_min_addr: %s\n", + strerror(err)); } =20 fclose(fp); @@ -1164,10 +1163,11 @@ static void run_mremap_test_case(struct test test_c= ase, int *failures, rand_addr); =20 if (remap_time < 0) { - if (test_case.expect_failure) - ksft_test_result_xfail("%s\n\tExpected mremap failure\n", - test_case.name); - else { + if (test_case.expect_failure) { + ksft_print_msg("%s: expected mremap failure\n", + test_case.name); + ksft_test_result_xfail("%s\n", test_case.name); + } else { ksft_test_result_fail("%s\n", test_case.name); *failures +=3D 1; } @@ -1177,11 +1177,13 @@ static void run_mremap_test_case(struct test test_c= ase, int *failures, * was faulted in. */ if (threshold_mb =3D=3D VALIDATION_NO_THRESHOLD || - test_case.config.region_size <=3D threshold_mb * _1MB) - ksft_test_result_pass("%s\n\tmremap time: %12lldns\n", - test_case.name, remap_time); - else + test_case.config.region_size <=3D threshold_mb * _1MB) { + ksft_print_msg("%s: mremap time: %12lldns\n", + test_case.name, remap_time); ksft_test_result_pass("%s\n", test_case.name); + } else { + ksft_test_result_pass("%s\n", test_case.name); + } } } =20 @@ -1250,13 +1252,16 @@ int main(int argc, char **argv) time_t t; FILE *maps_fp; =20 + ksft_print_header(); + pattern_seed =3D (unsigned int) time(&t); =20 if (parse_args(argc, argv, &threshold_mb, &pattern_seed) < 0) exit(EXIT_FAILURE); =20 - ksft_print_msg("Test configs:\n\tthreshold_mb=3D%u\n\tpattern_seed=3D%u\n= \n", - threshold_mb, pattern_seed); + ksft_print_msg("Test configs:\n"); + ksft_print_msg("threshold_mb=3D%u\n", threshold_mb); + ksft_print_msg("pattern_seed=3D%u\n", pattern_seed); =20 /* * set preallocated random array according to test configs; see the --=20 2.43.0 From nobody Mon Sep 28 23:13:08 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2326B369D6F; Sat, 15 Aug 2026 08:08:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786781288; cv=none; b=QztBsgVaOhko9mZP3gqPg+0O9zbkhn0VYxRuoTnn+Wk7zRXYOEJqIsRm7LvfJzPw2ory4YgabVqi+3dAn/CP6EOaDWutA8G050PHe9WuCd58XcUf1gaex5EwjeIdmPubWRYLz8I4H9/olFF8CMjNBotaN9nKgUmGusZM/CrnugI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786781288; c=relaxed/simple; bh=zEKHtU6vY9HS3L1VRLqbHsnv5X+mE3x7h7J8bKESRhk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YfLncJMt018ueogJXtzeUPEc0tHJYgVF8F6inY0UU3eTdL9sQGiUlZ+xIG9d7kG7bhtNxIKBj9Beh7lhfXEBbkvXwrd9enOBVhszNx39QskY1vtDwHr5O/zqrEIsnLxkHdDVwY8sdkR9lIMsuN0TD1UzxjCaXCah6qRL2jmRGYM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 6b9018d0988011f19a56ed5b684f684d-20260815 X-CTIC-Tags: HR_CC_COUNT, HR_CC_DOMAIN_COUNT, HR_CC_NAME, HR_CC_NO_NAME, HR_CTE_8B HR_CTT_MISS, HR_DATE_H, HR_DATE_WKD, HR_DATE_ZONE, HR_FROM_NAME HR_SJ_DIGIT_LEN, HR_SJ_LANG, HR_SJ_LEN, HR_SJ_LETTER, HR_SJ_NOR_SYM HR_SJ_PHRASE, HR_SJ_PHRASE_LEN, HR_SJ_WS, HR_TO_COUNT, HR_TO_DOMAIN_COUNT HR_TO_NO_NAME, IP_UNTRUSTED, SRC_UNTRUSTED, IP_LOWREP, SRC_LOWREP DN_TRUSTED, SRC_TRUSTED, SA_TRUSTED, SA_EXISTED, SN_TRUSTED SN_EXISTED, SPF_NOPASS, DKIM_NOPASS, DMARC_NOPASS, CIE_GOOD CIE_GOOD_SPF, GTI_FG_BS, GTI_RG_INFO, GTI_C_BU, AMN_GOOD X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.19,REQID:ddb5f0d2-0a7d-4394-bcbd-49de45807dca,IP:10, URL:0,TC:0,Content:0,EDM:-20,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:-10 X-CID-INFO: VERSION:1.3.19,REQID:ddb5f0d2-0a7d-4394-bcbd-49de45807dca,IP:10,UR L:0,TC:0,Content:0,EDM:-20,RT:0,SF:0,FILE:0,BULK:0,RULE:EDM_GE969F26,ACTIO N:release,TS:-10 X-CID-META: VersionHash:7db8b62,CLOUDID:10c0d73c66badb71245b2174fba588c3,BulkI D:260815160800X5W5ZYME,BulkQuantity:0,SF:17|19|38|66|78|81|82|102|127|865| 898,TC:nil,Content:0|15|50,EDM:1|-100,IP:-2,URL:0,File:nil,RT:nil,Bulk:nil ,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE: 0,ARC:0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_AEC,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 6b9018d0988011f19a56ed5b684f684d-20260815 X-User: husong@kylinos.cn Received: from ctao-book.. [(111.162.215.50)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA with TLSv1.3 TLS_AES_256_GCM_SHA384 256/256) with ESMTP id 2070273122; Sat, 15 Aug 2026 16:07:55 +0800 From: Song Hu To: akpm@linux-foundation.org, rppt@kernel.org, sarthak.sharma@arm.com Cc: linux-mm@kvack.org, shuah@kernel.org, david@kernel.org, ljs@kernel.org, liam@infradead.org, vbabka@kernel.org, surenb@google.com, mhocko@suse.com, peterx@redhat.com, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Song Hu Subject: [PATCH v2 3/3] selftests/mm: restore enable_soft_offline in hugetlb-soft-offline Date: Sat, 15 Aug 2026 16:07:16 +0800 Message-ID: <20260815080716.3596514-4-husong@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260815080716.3596514-1-husong@kylinos.cn> References: <20260815080716.3596514-1-husong@kylinos.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" hugetlb-soft-offline toggles /proc/sys/vm/enable_soft_offline between 1 and 0 (test_soft_offline_common(1) then (0)) and leaves it at 0 when it finishes, silently disabling soft offlining for the whole system after the run. Save the original value before the test and restore it from an atexit() handler, so the sysctl is also restored when the test exits early via ksft_exit_fail_msg(), as hugepage_restore_settings_atexit() in hugepage_settings.c already does. Use read_num()/write_num() from vm_util instead of the hand-rolled popen()/fopen() helpers. Signed-off-by: Song Hu Reviewed-by: Muhammad Usama Anjum Tested-by: Muhammad Usama Anjum --- .../selftests/mm/hugetlb-soft-offline.c | 35 +++++++------------ 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/tools/testing/selftests/mm/hugetlb-soft-offline.c b/tools/test= ing/selftests/mm/hugetlb-soft-offline.c index bc202e4ed2bd..86259921d54c 100644 --- a/tools/testing/selftests/mm/hugetlb-soft-offline.c +++ b/tools/testing/selftests/mm/hugetlb-soft-offline.c @@ -23,6 +23,7 @@ #include =20 #include "kselftest.h" +#include "vm_util.h" #include "hugepage_settings.h" =20 #ifndef MADV_SOFT_OFFLINE @@ -31,6 +32,8 @@ =20 #define EPREFIX " !!! " =20 +#define ENABLE_SOFT_OFFLINE_PATH "/proc/sys/vm/enable_soft_offline" + static int do_soft_offline(int fd, size_t len, int expect_errno) { char *filemap =3D NULL; @@ -77,26 +80,12 @@ static int do_soft_offline(int fd, size_t len, int expe= ct_errno) return ret; } =20 -static int set_enable_soft_offline(int value) -{ - char cmd[256] =3D {0}; - FILE *cmdfile =3D NULL; - - if (value !=3D 0 && value !=3D 1) - return -EINVAL; - - sprintf(cmd, "echo %d > /proc/sys/vm/enable_soft_offline", value); - cmdfile =3D popen(cmd, "r"); - - if (cmdfile) - ksft_print_msg("enable_soft_offline =3D> %d\n", value); - else { - ksft_perror(EPREFIX "failed to set enable_soft_offline"); - return errno; - } +static unsigned long orig_enable_soft_offline =3D -1UL; =20 - pclose(cmdfile); - return 0; +static void restore_enable_soft_offline(void) +{ + if (orig_enable_soft_offline !=3D -1UL) + write_num(ENABLE_SOFT_OFFLINE_PATH, orig_enable_soft_offline); } =20 static int create_hugetlbfs_file(struct statfs *file_stat) @@ -145,10 +134,7 @@ static void test_soft_offline_common(int enable_soft_o= ffline) hugepagesize_kb =3D file_stat.f_bsize / 1024; ksft_print_msg("Hugepagesize is %ldkB\n", hugepagesize_kb); =20 - if (set_enable_soft_offline(enable_soft_offline) !=3D 0) { - close(fd); - ksft_exit_fail_msg("Failed to set enable_soft_offline\n"); - } + write_num(ENABLE_SOFT_OFFLINE_PATH, enable_soft_offline); =20 nr_hugepages_before =3D hugetlb_nr_default_pages(); =20 @@ -192,6 +178,9 @@ int main(int argc, char **argv) =20 ksft_set_plan(2); =20 + orig_enable_soft_offline =3D read_num(ENABLE_SOFT_OFFLINE_PATH); + atexit(restore_enable_soft_offline); + test_soft_offline_common(1); test_soft_offline_common(0); =20 --=20 2.43.0