All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Zi Yan <ziy@nvidia.com>
Cc: Chunyu Hu <chuhu@redhat.com>,
	akpm@linux-foundation.org, david@kernel.org, shuah@kernel.org,
	linux-mm@kvack.org, ljs@kernel.org,
	linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com,
	vbabka@suse.cz, surenb@google.com, mhocko@suse.com,
	baolin.wang@linux.alibaba.com, npache@redhat.com,
	ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org,
	lance.yang@linux.dev, Li Wang <liwang@redhat.com>
Subject: Re: [RESEND PATCH 3/4] selftests/mm: split_huge_page_test: skip the test when thp is not available
Date: Fri, 13 Mar 2026 17:15:57 +0200	[thread overview]
Message-ID: <abQqLQ_6QqVgzunL@kernel.org> (raw)
In-Reply-To: <CD772D2C-F489-498D-A61C-9EA0D377B174@nvidia.com>

On Thu, Mar 12, 2026 at 10:11:12AM -0400, Zi Yan wrote:
> On 12 Mar 2026, at 7:40, Chunyu Hu wrote:
> 
> > 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.
> 
> Both write_file() do safe checks. Actually the code of both functions looks
> almost identical except that the thp_settings one does exit() instead of
> ksft_exit_fail_msg().
> 
> Can you rename the split_huge_page_test’s write_file() to write_file_local()
> and add a comment above the function like
> /* add _local to avoid a function conflict with thp_settings.h */?

Looks like we can move the version that uses ksft_exit_fail_msg() to
vm_util and drop the other one.
 
> With that, feel free to add:
> 
> Reviewed-by: Zi Yan <ziy@nvidia.com>
> 
> Thanks.
> 
> >
> > 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
> 
> 
> Best Regards,
> Yan, Zi

-- 
Sincerely yours,
Mike.

  parent reply	other threads:[~2026-03-13 15:16 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 ` [RESEND PATCH 3/4] selftests/mm: split_huge_page_test: skip the test " Chunyu Hu
2026-03-12 14:11   ` Zi Yan
2026-03-13  2:29     ` Chunyu Hu
2026-03-13 15:15     ` Mike Rapoport [this message]
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=abQqLQ_6QqVgzunL@kernel.org \
    --to=rppt@kernel.org \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=chuhu@redhat.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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.