public inbox for linux-mm@kvack.org
 help / color / mirror / Atom feed
From: Chunyu Hu <chuhu@redhat.com>
To: akpm@linux-foundation.org, david@kernel.org, shuah@kernel.org,
	linux-mm@kvack.org, ljs@kernel.org
Cc: linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com,
	vbabka@suse.cz, rppt@kernel.org, surenb@google.com,
	mhocko@suse.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com,
	npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com,
	baohua@kernel.org, lance.yang@linux.dev, chuhu@redhat.com,
	Li Wang <liwang@redhat.com>
Subject: [RESEND PATCH 3/4] selftests/mm: split_huge_page_test: skip the test when thp is not available
Date: Thu, 12 Mar 2026 19:40:26 +0800	[thread overview]
Message-ID: <20260312114027.634559-4-chuhu@redhat.com> (raw)
In-Reply-To: <20260312114027.634559-1-chuhu@redhat.com>

When thp is not enabled on some kernel config such as realtime kernel, the
test will report failure. Fix the false positive by skipping the test
directly when thp is not enabled.

There's a naming conflict on write_file() function, both thp_settings.h and
split_huge_page_test.c define it. To make use of thp_is_enabled() helper in
the thp_settings.h, rename this local write_file to safe_write_file to
avoid the conflict. The reason to use 'safe_' is it does some error check.

Tested with thp disabled kernel:
Before The fix:
  # --------------------------------------------------
  # running ./split_huge_page_test /tmp/xfs_dir_Ywup9p
  # --------------------------------------------------
  # TAP version 13
  # Bail out! Reading PMD pagesize failed
  # # Totals: pass:0 fail:0 xfail:0 xpass:0 skip:0 error:0
  # [FAIL]
  not ok 61 split_huge_page_test /tmp/xfs_dir_Ywup9p # exit=1

After the fix:
  # --------------------------------------------------
  # running ./split_huge_page_test /tmp/xfs_dir_YHPUPl
  # --------------------------------------------------
  # TAP version 13
  # 1..0 # SKIP Transparent Hugepages not available
  # [SKIP]
  ok 6 split_huge_page_test /tmp/xfs_dir_YHPUPl # SKIP

CC: Li Wang <liwang@redhat.com>
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
---
 tools/testing/selftests/mm/split_huge_page_test.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/testing/selftests/mm/split_huge_page_test.c
index e0167111bdd1..615b75ca62cc 100644
--- a/tools/testing/selftests/mm/split_huge_page_test.c
+++ b/tools/testing/selftests/mm/split_huge_page_test.c
@@ -21,6 +21,7 @@
 #include <time.h>
 #include "vm_util.h"
 #include "kselftest.h"
+#include "thp_settings.h"
 
 uint64_t pagesize;
 unsigned int pageshift;
@@ -255,7 +256,7 @@ static int check_after_split_folio_orders(char *vaddr_start, size_t len,
 	return status;
 }
 
-static void write_file(const char *path, const char *buf, size_t buflen)
+static void safe_write_file(const char *path, const char *buf, size_t buflen)
 {
 	int fd;
 	ssize_t numwritten;
@@ -283,7 +284,7 @@ static void write_debugfs(const char *fmt, ...)
 	if (ret >= INPUT_MAX)
 		ksft_exit_fail_msg("%s: Debugfs input is too long\n", __func__);
 
-	write_file(SPLIT_DEBUGFS, input, ret + 1);
+	safe_write_file(SPLIT_DEBUGFS, input, ret + 1);
 }
 
 static char *allocate_zero_filled_hugepage(size_t len)
@@ -772,6 +773,10 @@ int main(int argc, char **argv)
 		ksft_finished();
 	}
 
+	if (!thp_is_enabled()) {
+		ksft_exit_skip("Transparent Hugepages not available\n");
+	}
+
 	if (argc > 1)
 		optional_xfs_path = argv[1];
 
-- 
2.53.0



  parent reply	other threads:[~2026-03-12 11:41 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-12 11:40 [PATCH 0/4] selftests/mm: skip several tests when thp is not available Chunyu Hu
2026-03-12 11:40 ` [RESEND PATCH 1/4] selftests/mm/guard-regions: skip collapse test when thp not enabled Chunyu Hu
2026-03-12 13:58   ` Zi Yan
2026-03-12 19:48   ` David Hildenbrand (Arm)
2026-03-13 15:35   ` Lorenzo Stoakes (Oracle)
2026-03-12 11:40 ` [RESEND PATCH 2/4] selftests/mm: soft-dirty: skip two tests when thp is not available Chunyu Hu
2026-03-12 14:00   ` Zi Yan
2026-03-12 19:43   ` David Hildenbrand (Arm)
2026-03-13 17:37   ` Lorenzo Stoakes (Oracle)
2026-03-12 11:40 ` Chunyu Hu [this message]
2026-03-12 14:11   ` [RESEND PATCH 3/4] selftests/mm: split_huge_page_test: skip the test " Zi Yan
2026-03-13  2:29     ` Chunyu Hu
2026-03-13 15:15     ` Mike Rapoport
2026-03-13 15:27       ` Zi Yan
2026-03-13 18:00         ` Lorenzo Stoakes (Oracle)
2026-03-16  3:51         ` Chunyu Hu
2026-03-16  3:46       ` Chunyu Hu
2026-03-12 19:44   ` David Hildenbrand (Arm)
2026-03-13  2:25     ` Chunyu Hu
2026-03-12 11:40 ` [RESEND PATCH 4/4] selftests/mm: transhuge_stress: skip the test when thp " Chunyu Hu
2026-03-12 14:11   ` Zi Yan
2026-03-12 19:46   ` David Hildenbrand (Arm)
2026-03-13  2:43     ` Chunyu Hu
2026-03-13 18:01       ` Lorenzo Stoakes (Oracle)
2026-03-12 14:03 ` [PATCH 0/4] selftests/mm: skip several tests when thp is " Mike Rapoport
2026-03-13  0:26   ` Chunyu Hu
2026-03-13 15:19     ` Mike Rapoport
2026-03-13 15:40       ` Lorenzo Stoakes (Oracle)
2026-03-14  0:22         ` Chunyu Hu
2026-03-14  0:27       ` Chunyu Hu
2026-03-12 19:39 ` David Hildenbrand (Arm)
2026-03-13  2:21   ` Chunyu Hu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260312114027.634559-4-chuhu@redhat.com \
    --to=chuhu@redhat.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=lance.yang@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=liwang@redhat.com \
    --cc=ljs@kernel.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=mhocko@suse.com \
    --cc=npache@redhat.com \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox