From nobody Mon Oct 6 19:06:25 2025 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 58D042D8DBD for ; Thu, 17 Jul 2025 13:19:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752758394; cv=none; b=jVlld+D3tbJIg7unmn+5nxd3/PRh1NQCwCn+csg9MrQqrD2ogZZYcx60zBk+6zgW9UVHys+Ra7V3JOFls1jIZocM4/1aE6XHzlGkf/yKNbsSzA2MSmyHbmUBtcnuhzMfwbRr8h4JuemzY1Dj2XLsKQQWIV9kIa5BYDqJ3Uja3vI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752758394; c=relaxed/simple; bh=2Lmza6lVP/m0i/zH8gYQyhI/IUgEfBDltLTfcQxMga0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=amxunW9VFYCuc7OQ8Y4yhMcDKWpoUli+05DjCwJpRNvsJrSeM8xfSXePsKeyyOVdusI4L4JnNRbKCD9kOgdC8UMukDlflAad4jTO7EFJge0zFpIn0XGJZQ0h0W212mDAnGArfamKP48n1IdvcmydOLYkXthvdaNMLWZwdDDWBb0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A+Y+E8Rm; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A+Y+E8Rm" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-23e210ebd5dso14646865ad.1 for ; Thu, 17 Jul 2025 06:19:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752758391; x=1753363191; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1786UljR40Ey8hUhV8xAFjRTVHePO6Fj+ZWLSNdNrEA=; b=A+Y+E8RmvtDDCrPLJaLC3Y03ryBWuE6FXq9Bgln+wq2jz1ZZ0Cd1e/f7FlgbhdvK9O hQbyzajXOjcd1ZMwPctk2i3WjGDcqhaQGc4SirP2YcsIA4+NffhWhqIDDX6XPx7EOwUY 9rav9zlN5opf9VN3kipOF5K0UQlhwf09bcJ9/hDft3LiB+nYoJHswq9Blcs1Zi8aMl7J 7car4VTCCtmwrQBFSv77amu4aZ+uNdgTRa2rdJZvbwVGNUYRl8aAkmAq2M4jUO/b0PLE HXQa2H5+BNh+Fkfmeaj7TGn5DFaCkxrT8P3RmF45LNYHniVcUT1qJoVWdSuwdxZf6xKR MGmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752758391; x=1753363191; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1786UljR40Ey8hUhV8xAFjRTVHePO6Fj+ZWLSNdNrEA=; b=X18wQ3JtBVG8kReGhBI5NsNmdQmyj2g6E3SdsYDL6w+FJpfkS/A6jh/iGCQBoinpzw WrhRCTZiDwp1qMLpj8HcoPtA9IyusqtTrH0DRXHteZDE5V4Udcy0AK//mzwWmr282Gvt IJ6o9Ht+eqcUfjbPVsH6xLouyfM+f9rAMFTjmXpIoebLgi23AjWn0qkPPBdwwDndVFIn UGfSNEfuq0VdfN61R/bnH7eL63EBvGaeA66d/OzLb7rWApvujZ0pJcOYO5Vczu5KjuWO hGbTz/BmO4Gsn7A0ls/wttNNQMOLI4vUt0zLsDydjIYDo9zNn0UH5rpk9p6IDPI630Af DT+Q== X-Forwarded-Encrypted: i=1; AJvYcCUdr5XHT137YI5p0YcF4qwrBi9TLL9dj9N+ZQFMa1NGaKRfQiHv6adHA4kkIOhVzcOEzl9rGqLm4pzvEwg=@vger.kernel.org X-Gm-Message-State: AOJu0YxuAuC/Q6HZIIIEDLpXvw1zKBKRhfa03mwq7R5Dc3SCFGONgwr6 byq1X79Ke9j1Z1x3LGYQBT2+wC4ZyVfXH1721SbsrpX0uGNv1nKBbhXR X-Gm-Gg: ASbGnctpN4bu/CjHrxXmANXeUFzw4XT4DuJxvDF+MPEaHfzntd5CPk6yoG3BrVZzM3o Gdyi2uikqFElKU7JF7HXUqFhalR0Csk3yYFjGYhcvcJ3AgmaerGGYjbjameT1OVLV9JEjPBzPbT 6A2JlO4ctXYxPtpIO9L/3WuPDitDPnUoywdiAimTmg03c5t7yC+F3hZlDBf28/l0KUbqHk/CTC6 yYcBboXM0fWOlDKENOwAz+Rkcm4igaNkFI5cq70iFi9+HSByWuV6UACr04u15ALPxBzEbuphZkt Yid5pS11CAvmjB2N/F8R87QzWFTPmTAf2fS8X52T/e9lnVkNjwKEj+CZ+UihRpDjW2Lu3W+pb6Q 27f1qnSeWM/8VD4VFAYM0xDgYVEp6mbzMyzAAImrs6ZTCJ2Ps X-Google-Smtp-Source: AGHT+IGzhSD+w6oECBIJm/zoRA+a8TQX/977OHgFJOsgHWOfj6pcUAeUpMOteR864pPF5VOP/PRPnw== X-Received: by 2002:a17:902:dac1:b0:23d:dd5b:886a with SMTP id d9443c01a7336-23e2f2308e3mr55707395ad.0.1752758391456; Thu, 17 Jul 2025 06:19:51 -0700 (PDT) Received: from DESKTOP-GIED850.localdomain ([114.247.113.178]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de4322e7fsm148053315ad.93.2025.07.17.06.19.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Jul 2025 06:19:51 -0700 (PDT) From: wang lian To: akpm@linux-foundation.org, broonie@kernel.org, david@redhat.com, lorenzo.stoakes@oracle.com, sj@kernel.org, ziy@nvidia.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: brauner@kernel.org, gkwang@linx-info.com, jannh@google.com, Liam.Howlett@oracle.com, lianux.mm@gmail.com, ludovico.zy.wu@gmail.com, p1ucky0923@gmail.com, richard.weiyang@gmail.com, ryncsn@gmail.com, shuah@kernel.org, vbabka@suse.cz, zijing.zhang@proton.me Subject: [PATCH 1/2] selftests/mm: reuse FORCE_READ to replace "asm volatile("" : "+r" (XXX));" Date: Thu, 17 Jul 2025 21:18:56 +0800 Message-ID: <20250717131857.59909-2-lianux.mm@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250717131857.59909-1-lianux.mm@gmail.com> References: <20250717131857.59909-1-lianux.mm@gmail.com> 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" Several mm selftests use the `asm volatile("" : "+r" (variable));` construct to force a read of a variable, preventing the compiler from optimizing away the memory access. This idiom is cryptic and duplicated across multiple test files. Following a suggestion from David[1], this patch refactors this common pattern into a FORCE_READ() macro [1] https://lore.kernel.org/lkml/4a3e0759-caa1-4cfa-bc3f-402593f1eee3@redha= t.com/ Signed-off-by: wang lian Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Reviewed-by: Wei Yang Reviewed-by: Zi Yan --- tools/testing/selftests/mm/cow.c | 30 +++++++++---------- tools/testing/selftests/mm/guard-regions.c | 7 ----- tools/testing/selftests/mm/hugetlb-madvise.c | 5 +--- tools/testing/selftests/mm/migration.c | 13 ++++---- tools/testing/selftests/mm/pagemap_ioctl.c | 4 +-- .../selftests/mm/split_huge_page_test.c | 4 +-- tools/testing/selftests/mm/vm_util.h | 7 +++++ 7 files changed, 31 insertions(+), 39 deletions(-) diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/= cow.c index 788e82b00b75..d30625c18259 100644 --- a/tools/testing/selftests/mm/cow.c +++ b/tools/testing/selftests/mm/cow.c @@ -1534,7 +1534,7 @@ static void test_ro_fast_pin(char *mem, const char *s= mem, size_t size) =20 static void run_with_zeropage(non_anon_test_fn fn, const char *desc) { - char *mem, *smem, tmp; + char *mem, *smem; =20 log_test_start("%s ... with shared zeropage", desc); =20 @@ -1554,8 +1554,8 @@ static void run_with_zeropage(non_anon_test_fn fn, co= nst char *desc) } =20 /* Read from the page to populate the shared zeropage. */ - tmp =3D *mem + *smem; - asm volatile("" : "+r" (tmp)); + FORCE_READ(mem); + FORCE_READ(smem); =20 fn(mem, smem, pagesize); munmap: @@ -1566,7 +1566,7 @@ static void run_with_zeropage(non_anon_test_fn fn, co= nst char *desc) =20 static void run_with_huge_zeropage(non_anon_test_fn fn, const char *desc) { - char *mem, *smem, *mmap_mem, *mmap_smem, tmp; + char *mem, *smem, *mmap_mem, *mmap_smem; size_t mmap_size; int ret; =20 @@ -1617,8 +1617,8 @@ static void run_with_huge_zeropage(non_anon_test_fn f= n, const char *desc) * the first sub-page and test if we get another sub-page populated * automatically. */ - tmp =3D *mem + *smem; - asm volatile("" : "+r" (tmp)); + FORCE_READ(mem); + FORCE_READ(smem); if (!pagemap_is_populated(pagemap_fd, mem + pagesize) || !pagemap_is_populated(pagemap_fd, smem + pagesize)) { ksft_test_result_skip("Did not get THPs populated\n"); @@ -1634,7 +1634,7 @@ static void run_with_huge_zeropage(non_anon_test_fn f= n, const char *desc) =20 static void run_with_memfd(non_anon_test_fn fn, const char *desc) { - char *mem, *smem, tmp; + char *mem, *smem; int fd; =20 log_test_start("%s ... with memfd", desc); @@ -1668,8 +1668,8 @@ static void run_with_memfd(non_anon_test_fn fn, const= char *desc) } =20 /* Fault the page in. */ - tmp =3D *mem + *smem; - asm volatile("" : "+r" (tmp)); + FORCE_READ(mem); + FORCE_READ(smem); =20 fn(mem, smem, pagesize); munmap: @@ -1682,7 +1682,7 @@ static void run_with_memfd(non_anon_test_fn fn, const= char *desc) =20 static void run_with_tmpfile(non_anon_test_fn fn, const char *desc) { - char *mem, *smem, tmp; + char *mem, *smem; FILE *file; int fd; =20 @@ -1724,8 +1724,8 @@ static void run_with_tmpfile(non_anon_test_fn fn, con= st char *desc) } =20 /* Fault the page in. */ - tmp =3D *mem + *smem; - asm volatile("" : "+r" (tmp)); + FORCE_READ(mem); + FORCE_READ(smem); =20 fn(mem, smem, pagesize); munmap: @@ -1740,7 +1740,7 @@ static void run_with_memfd_hugetlb(non_anon_test_fn f= n, const char *desc, size_t hugetlbsize) { int flags =3D MFD_HUGETLB; - char *mem, *smem, tmp; + char *mem, *smem; int fd; =20 log_test_start("%s ... with memfd hugetlb (%zu kB)", desc, @@ -1778,8 +1778,8 @@ static void run_with_memfd_hugetlb(non_anon_test_fn f= n, const char *desc, } =20 /* Fault the page in. */ - tmp =3D *mem + *smem; - asm volatile("" : "+r" (tmp)); + FORCE_READ(mem); + FORCE_READ(smem); =20 fn(mem, smem, hugetlbsize); munmap: diff --git a/tools/testing/selftests/mm/guard-regions.c b/tools/testing/sel= ftests/mm/guard-regions.c index 93af3d3760f9..4b76e72e7053 100644 --- a/tools/testing/selftests/mm/guard-regions.c +++ b/tools/testing/selftests/mm/guard-regions.c @@ -35,13 +35,6 @@ static volatile sig_atomic_t signal_jump_set; static sigjmp_buf signal_jmp_buf; =20 -/* - * Ignore the checkpatch warning, we must read from x but don't want to do - * anything with it in order to trigger a read page fault. We therefore mu= st use - * volatile to stop the compiler from optimising this away. - */ -#define FORCE_READ(x) (*(volatile typeof(x) *)x) - /* * How is the test backing the mapping being tested? */ diff --git a/tools/testing/selftests/mm/hugetlb-madvise.c b/tools/testing/s= elftests/mm/hugetlb-madvise.c index e74107185324..1afe14b9dc0c 100644 --- a/tools/testing/selftests/mm/hugetlb-madvise.c +++ b/tools/testing/selftests/mm/hugetlb-madvise.c @@ -47,14 +47,11 @@ void write_fault_pages(void *addr, unsigned long nr_pag= es) =20 void read_fault_pages(void *addr, unsigned long nr_pages) { - volatile unsigned long dummy =3D 0; unsigned long i; =20 for (i =3D 0; i < nr_pages; i++) { - dummy +=3D *((unsigned long *)(addr + (i * huge_page_size))); - /* Prevent the compiler from optimizing out the entire loop: */ - asm volatile("" : "+r" (dummy)); + FORCE_READ(((unsigned long *)(addr + (i * huge_page_size)))); } } =20 diff --git a/tools/testing/selftests/mm/migration.c b/tools/testing/selftes= ts/mm/migration.c index a306f8bab087..c5a73617796a 100644 --- a/tools/testing/selftests/mm/migration.c +++ b/tools/testing/selftests/mm/migration.c @@ -16,6 +16,7 @@ #include #include #include +#include "vm_util.h" =20 #define TWOMEG (2<<20) #define RUNTIME (20) @@ -103,15 +104,13 @@ int migrate(uint64_t *ptr, int n1, int n2) =20 void *access_mem(void *ptr) { - volatile uint64_t y =3D 0; - volatile uint64_t *x =3D ptr; - while (1) { pthread_testcancel(); - y +=3D *x; - - /* Prevent the compiler from optimizing out the writes to y: */ - asm volatile("" : "+r" (y)); + /* Force a read from the memory pointed to by ptr. This ensures + * the memory access actually happens and prevents the compiler + * from optimizing away this entire loop. + */ + FORCE_READ((uint64_t *)ptr); } =20 return NULL; diff --git a/tools/testing/selftests/mm/pagemap_ioctl.c b/tools/testing/sel= ftests/mm/pagemap_ioctl.c index c2dcda78ad31..0d4209eef0c3 100644 --- a/tools/testing/selftests/mm/pagemap_ioctl.c +++ b/tools/testing/selftests/mm/pagemap_ioctl.c @@ -1525,9 +1525,7 @@ void zeropfn_tests(void) =20 ret =3D madvise(mem, hpage_size, MADV_HUGEPAGE); if (!ret) { - char tmp =3D *mem; - - asm volatile("" : "+r" (tmp)); + FORCE_READ(mem); =20 ret =3D pagemap_ioctl(mem, hpage_size, &vec, 1, 0, 0, PAGE_IS_PFNZERO, 0, 0, PAGE_IS_PFNZERO); diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/test= ing/selftests/mm/split_huge_page_test.c index f0d9c035641d..05de1fc0005b 100644 --- a/tools/testing/selftests/mm/split_huge_page_test.c +++ b/tools/testing/selftests/mm/split_huge_page_test.c @@ -399,7 +399,6 @@ int create_pagecache_thp_and_fd(const char *testfile, s= ize_t fd_size, int *fd, char **addr) { size_t i; - int dummy =3D 0; unsigned char buf[1024]; =20 srand(time(NULL)); @@ -441,8 +440,7 @@ int create_pagecache_thp_and_fd(const char *testfile, s= ize_t fd_size, int *fd, madvise(*addr, fd_size, MADV_HUGEPAGE); =20 for (size_t i =3D 0; i < fd_size; i++) - dummy +=3D *(*addr + i); - asm volatile("" : "+r" (dummy)); + FORCE_READ((*addr + i)); =20 if (!check_huge_file(*addr, fd_size / pmd_pagesize, pmd_pagesize)) { ksft_print_msg("No large pagecache folio generated, please provide a fil= esystem supporting large folio\n"); diff --git a/tools/testing/selftests/mm/vm_util.h b/tools/testing/selftests= /mm/vm_util.h index 2b154c287591..c20298ae98ea 100644 --- a/tools/testing/selftests/mm/vm_util.h +++ b/tools/testing/selftests/mm/vm_util.h @@ -18,6 +18,13 @@ #define PM_SWAP BIT_ULL(62) #define PM_PRESENT BIT_ULL(63) =20 +/* + * Ignore the checkpatch warning, we must read from x but don't want to do + * anything with it in order to trigger a read page fault. We therefore mu= st use + * volatile to stop the compiler from optimising this away. + */ +#define FORCE_READ(x) (*(volatile typeof(x) *)x) + extern unsigned int __page_size; extern unsigned int __page_shift; =20 --=20 2.43.0 From nobody Mon Oct 6 19:06:25 2025 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 709152E4995 for ; Thu, 17 Jul 2025 13:20:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752758405; cv=none; b=OvngkbIenuYSLUEA83BX0sOrotEObeaNhW4Xrl2R5Vc8lHS+aKFOrhgkcCPZLc9m0U6FIf3hW+1118/xZRMk9JWNDvY6UfuP1dNOi0PER57BFtftkQKn04LasCgeCp2P6mBnPElz+0AGuVQ6/zGQXz1sVP7mepEv08SbAkF5EjA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752758405; c=relaxed/simple; bh=Ht/AU7qX96DgW45jQv8wCyB6rZkYr7yWkNTy8kdn7Ok=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SgPiyhQ7y8Ole9v15HFdfPY5Ku8x1rYQM46o0RremhyuUfcEAKdPXxv2No+CtukpqB8pq7UnRUpuIrbx4QJ3SdlmFSGMuHROidF50KTjP1hRMAtRXGXLRbCD4yn1cz2eg4cWbWEqUoua4jB472NX76vHjQxOqQtw2vc9ACTC2QU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b9dQag83; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b9dQag83" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-23c8f179e1bso8796215ad.1 for ; Thu, 17 Jul 2025 06:20:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752758403; x=1753363203; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LmGTgMm0CwlsfF7pgZGjy2MuT4lXG/yPFB4+SIA2w3Q=; b=b9dQag83cYCSvqSP9L7Q1dT0ptydzpC363iNoy7vQLAosMO7wHv3vgm65q7b1NEGmR GxCbZBEsFFMopplGwYaElQk8poIR824iBdpxtLJVmCW52CoY8WJ+mfne1To3YUuqX4+C 3oInP1hvb2ecZ6cetJLnCpZwytxA9mOnyP0SqlQOlLSrCMiD5T5oxU0+2YN5DbdiXn6S QuC0BtkiAsZOaauBMK/jASnXfyevQZAJoVsX9iSiOCYhW8HfXoRMz4zEMfNQFiFP0/he Y5sEqpZyf2aEqTWuwVWnMAeD0SjwpcQQWzw/OtPQ+0zwI90kVZ4IWg2cdgqRBL22Xp0O G9yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752758403; x=1753363203; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LmGTgMm0CwlsfF7pgZGjy2MuT4lXG/yPFB4+SIA2w3Q=; b=bUjHSIO6Pj45Lh7ie2JqJvVZXvOfIfnQ18Y/Dgg8NJOs9d++n6YHtB7urZRsjuz/vg NHTOtBgZmALuwDSMU8bqOUxLDI/Z7/qOLHlUDlJV+AwJCtxIJm1oCOQ4of1exu0iW425 /bRMslNEBPFFxLdzNY4euzT4CObxql6DR0nOdE+w4kx7jwfq+yUo1SMO2GaJzYeRn3a6 PEU8SwyTweUAwD01WHPyTRT3Ud/6CTPPDroYn/I3tjfFMU67N/SFEUKX40OziHbWqRGD +TBRvH1x20fzRSidYqUFvabt2ns4Zy40jLGvt0y/+hB5IJSyjkL/egM78/obiP59nBMW jutQ== X-Forwarded-Encrypted: i=1; AJvYcCUGdVEStYJa+naO8CIDJvjo+xE+Kug052kc0CnchHhV5bfxmGAOSKfD/YVZg17Ks+6ObE4pjeuCa/EZu+E=@vger.kernel.org X-Gm-Message-State: AOJu0YyFM9BRV4Zw9VfRI2Jwgr3v2txssoPF4m++FXPm4Rrl+a6Ge6dJ RCROms5W6vDyfNq3fHtRgiU7hVvrX4JwUSTMUSPi+gp1/J8SyBxtFpww X-Gm-Gg: ASbGncta6kaX1lWSSaMFVBOc3s+fGrkKGGbdaXaFdn3ESc+Vg+pBtdUE9JLTKk+Cs0j BB4WXMVLcQLjKRQqy9HKuMGXIeIIjNG0ImkQ5ird3FDU+hXRGvigbOd7kHu02qAP3rfWYQRVWn3 gG+4dvN0RFDUfoAhtKiyuXphnziKdVNBt3841p+A2YZXpISGpF+3TDWiXmLOueurEBCsu0puoER xOtug+YxVY5X1E64/lE/K8Phpp/t0MxJ+jJuImYbzFDlurI62Gcw/+wQ05dJiObDHoG2MwHS0eH 85LNfo7B/UVaVTWplHzPP7SGgBa8bCHgDAaP75AnoKu0AYn5zI/tplPWK8uu7EWLzbq2YKAYYAZ e5n6Y5vWnkuB22vMBhszpCFHzSDC5jVKZXfvbN0TvBEmb6ikg X-Google-Smtp-Source: AGHT+IGWHeMY/uZ12iEvzQuqHtNmXdFjvZF16itZG3Iod/MC+opDHAiiRjYrodtsw71q94XoI8Cd9w== X-Received: by 2002:a17:902:e841:b0:235:f3e6:467f with SMTP id d9443c01a7336-23e25693861mr107257555ad.2.1752758403474; Thu, 17 Jul 2025 06:20:03 -0700 (PDT) Received: from DESKTOP-GIED850.localdomain ([114.247.113.178]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de4322e7fsm148053315ad.93.2025.07.17.06.19.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Jul 2025 06:20:03 -0700 (PDT) From: wang lian To: akpm@linux-foundation.org, broonie@kernel.org, david@redhat.com, lorenzo.stoakes@oracle.com, sj@kernel.org, ziy@nvidia.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: brauner@kernel.org, gkwang@linx-info.com, jannh@google.com, Liam.Howlett@oracle.com, lianux.mm@gmail.com, ludovico.zy.wu@gmail.com, p1ucky0923@gmail.com, richard.weiyang@gmail.com, ryncsn@gmail.com, shuah@kernel.org, vbabka@suse.cz, zijing.zhang@proton.me Subject: [PATCH 2/2] selftests/mm: guard-regions: Use SKIP() instead of ksft_exit_skip() Date: Thu, 17 Jul 2025 21:18:57 +0800 Message-ID: <20250717131857.59909-3-lianux.mm@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250717131857.59909-1-lianux.mm@gmail.com> References: <20250717131857.59909-1-lianux.mm@gmail.com> 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" To ensure only the current test is skipped on permission failure, instead of terminating the entire test binary. Signed-off-by: wang lian Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Reviewed-by: Mark Brown Reviewed-by: Wei Yang Reviewed-by: Zi Yan --- tools/testing/selftests/mm/guard-regions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/mm/guard-regions.c b/tools/testing/sel= ftests/mm/guard-regions.c index 4b76e72e7053..b0d42eb04e3a 100644 --- a/tools/testing/selftests/mm/guard-regions.c +++ b/tools/testing/selftests/mm/guard-regions.c @@ -575,7 +575,7 @@ TEST_F(guard_regions, process_madvise) =20 /* OK we don't have permission to do this, skip. */ if (count =3D=3D -1 && errno =3D=3D EPERM) - ksft_exit_skip("No process_madvise() permissions, try running as root.\n= "); + SKIP(return, "No process_madvise() permissions, try running as root.\n"); =20 /* Returns the number of bytes advised. */ ASSERT_EQ(count, 6 * page_size); --=20 2.43.0