The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Sarthak Sharma <sarthak.sharma@arm.com>
To: Mike Rapoport <rppt@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@kernel.org>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>,
	Barry Song <baohua@kernel.org>, Dev Jain <dev.jain@arm.com>,
	Donet Tom <donettom@linux.ibm.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	John Hubbard <jhubbard@nvidia.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lance Yang <lance.yang@linux.dev>,
	Leon Romanovsky <leon@kernel.org>,
	Lorenzo Stoakes <ljs@kernel.org>,
	Luiz Capitulino <luizcap@redhat.com>,
	Mark Brown <broonie@kernel.org>, Michal Hocko <mhocko@suse.com>,
	Nico Pache <npache@redhat.com>, Peter Xu <peterx@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Shuah Khan <shuah@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Vlastimil Babka <vbabka@kernel.org>, Zi Yan <ziy@nvidia.com>,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-mm@kvack.org
Subject: Re: [PATCH v3 44/54] selftests/mm: migration: add setup of HugeTLB pages
Date: Thu, 7 May 2026 17:06:18 +0530	[thread overview]
Message-ID: <5102f1d4-e098-4a88-b4e0-ef693540e5ec@arm.com> (raw)
In-Reply-To: <20260428204240.1924129-45-rppt@kernel.org>



On 4/29/26 2:12 AM, Mike Rapoport wrote:
> From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> 
> migration skips HugeTLB tests if there are no free huge pages
> prepared by a wrapper script.
> 
> Add setup of HugeTLB pages to the test and make sure that the original
> settings are restored on the test exit.
> 
> Since kselftest_harness runs fixture setup and the tests in child
> processes, use HUGETLB_SETUP_DEFAULT_PAGES() that defines a constructor
> that runs in the main process and add verification that there are enough
> free huge pages to the tests that use them.
> 
> Reset signal handlers to defaults in FIXTURE_SETUP() so that sending
> SIGTERM and SIGHUP during the tests won't cause restoration of HugeTLB
> settings.
> 
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

I have run the test before and after applying the patch. Before the
patch, the hugetlb subtests failed with MAP_FAILED because hugepages
were not preallocated. After the patch, those subtests correctly
allocate the required hugepages and pass successfully, restoring the
original settings at exit.

Tested-by: Sarthak Sharma sarthak.sharma@arm.com

> ---
>  tools/testing/selftests/mm/migration.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/tools/testing/selftests/mm/migration.c b/tools/testing/selftests/mm/migration.c
> index 0212cd5bde6e..f212c1b06455 100644
> --- a/tools/testing/selftests/mm/migration.c
> +++ b/tools/testing/selftests/mm/migration.c
> @@ -23,6 +23,8 @@
>  #define MAX_RETRIES	100
>  #define ALIGN(x, a)	(((x) + (a - 1)) & (~((a) - 1)))
>  
> +HUGETLB_SETUP_DEFAULT_PAGES(1)
> +
>  FIXTURE(migration)
>  {
>  	pthread_t *threads;
> @@ -32,10 +34,21 @@ FIXTURE(migration)
>  	int n2;
>  };
>  
> +static void reset_signals(void)
> +{
> +	struct sigaction sa = { .sa_handler = SIG_DFL };
> +
> +	sigemptyset(&sa.sa_mask);
> +	sigaction(SIGTERM, &sa, NULL);
> +	sigaction(SIGHUP, &sa, NULL);
> +}
> +
>  FIXTURE_SETUP(migration)
>  {
>  	int n;
>  
> +	reset_signals();
> +
>  	if (numa_available() < 0)
>  		SKIP(return, "NUMA not available");
>  	self->nthreads = numa_num_task_cpus() - 2;
> @@ -271,6 +284,9 @@ TEST_F_TIMEOUT(migration, private_anon_htlb, 2*RUNTIME)
>  	if (!hugepage_size)
>  		SKIP(return, "Reading HugeTLB pagesize failed\n");
>  
> +	if (hugetlb_free_default_pages() < 1)
> +		SKIP(return, "Not enough huge pages\n");
> +
>  	ptr = mmap(NULL, hugepage_size, PROT_READ | PROT_WRITE,
>  		MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
>  	ASSERT_NE(ptr, MAP_FAILED);
> @@ -299,6 +315,9 @@ TEST_F_TIMEOUT(migration, shared_anon_htlb, 2*RUNTIME)
>  	if (!hugepage_size)
>  		SKIP(return, "Reading HugeTLB pagesize failed\n");
>  
> +	if (hugetlb_free_default_pages() < 1)
> +		SKIP(return, "Not enough huge pages\n");
> +
>  	ptr = mmap(NULL, hugepage_size, PROT_READ | PROT_WRITE,
>  		MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
>  	ASSERT_NE(ptr, MAP_FAILED);


  parent reply	other threads:[~2026-05-07 11:37 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260428204240.1924129-1-rppt@kernel.org>
     [not found] ` <20260428204240.1924129-36-rppt@kernel.org>
2026-05-04 12:20   ` [PATCH v3 35/54] selftests/mm: hugepage_dio: add setup of HugeTLB pages Sarthak Sharma
2026-05-11  8:25     ` Mike Rapoport
     [not found] ` <20260428204240.1924129-41-rppt@kernel.org>
2026-05-05  6:51   ` [PATCH v3 40/54] selftests/mm: hugetlb-mremap: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-43-rppt@kernel.org>
2026-05-05  7:15   ` [PATCH v3 42/54] selftests/mm: hugetlb-soft-online: " Sarthak Sharma
2026-05-11  8:25     ` Mike Rapoport
     [not found] ` <20260428204240.1924129-51-rppt@kernel.org>
2026-05-05 11:27   ` [PATCH v3 50/54] selftests/mm: uffd-wp-mremap: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-42-rppt@kernel.org>
2026-05-05 11:33   ` [PATCH v3 41/54] selftests/mm: hugetlb-shm: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-50-rppt@kernel.org>
2026-05-05 11:48   ` [PATCH v3 49/54] selftests/mm: uffd-unit-tests: " Sarthak Sharma
2026-05-11  8:28     ` Mike Rapoport
     [not found] ` <20260428204240.1924129-31-rppt@kernel.org>
     [not found]   ` <daa3e21f-0c48-456e-a4a8-198a8c907b9d@arm.com>
2026-05-05 15:26     ` [PATCH v3 30/54] selftests/mm: compaction_test: use HugeTLB helpers Mike Rapoport
     [not found] ` <20260428204240.1924129-18-rppt@kernel.org>
2026-05-06  8:57   ` [PATCH v3 17/54] selftests/mm: protection_keys: use kselftest framework Sarthak Sharma
     [not found] ` <20260428204240.1924129-21-rppt@kernel.org>
2026-05-06  9:02   ` [PATCH v3 20/54] selftests/mm: va_high_addr_switch: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-23-rppt@kernel.org>
2026-05-06  9:12   ` [PATCH v3 22/54] selftests/mm: rename thp_settings.[ch] to hugepage_settings.[ch] Sarthak Sharma
     [not found] ` <20260428204240.1924129-24-rppt@kernel.org>
2026-05-06  9:14   ` [PATCH v3 23/54] selftests/mm: move HugeTLB helpers to hugepage_settings Sarthak Sharma
     [not found] ` <20260428204240.1924129-25-rppt@kernel.org>
2026-05-06  9:23   ` [PATCH v3 24/54] selftests/mm: hugepage_settings: use unsigned long in detect_hugetlb_page_size Sarthak Sharma
     [not found] ` <20260428204240.1924129-26-rppt@kernel.org>
2026-05-06 10:12   ` [PATCH v3 25/54] selftests/mm: hugepage_settings: add APIs to get and set nr_hugepages Sarthak Sharma
     [not found] ` <20260428204240.1924129-27-rppt@kernel.org>
2026-05-06 11:03   ` [PATCH v3 26/54] selftests/mm: hugepage_settings: rename get_free_hugepages() Sarthak Sharma
     [not found] ` <20260428204240.1924129-28-rppt@kernel.org>
     [not found]   ` <2f443474-4448-462e-bc1e-55bc657d70ba@redhat.com>
     [not found]     ` <afTF9RCy8eBoWYaj@kernel.org>
     [not found]       ` <22b1cadc-4b0d-4e2a-987c-e7a7bc2265eb@redhat.com>
     [not found]         ` <afV_WAK56lQKn_z1@kernel.org>
2026-05-04 13:04           ` [PATCH v3 27/54] selftests/mm: hugepage_settings: add APIs for HugeTLB setup and teardown Luiz Capitulino
2026-05-06 11:17   ` Sarthak Sharma
     [not found] ` <20260428204240.1924129-29-rppt@kernel.org>
2026-05-06 11:36   ` [PATCH v3 28/54] selftests/mm: move read_file(), read_num() and write_num() to vm_util Sarthak Sharma
     [not found] ` <20260428204240.1924129-30-rppt@kernel.org>
2026-05-06 12:01   ` [PATCH v3 29/54] selftests/mm: vm_util: add helpers to set and restore shm limits Sarthak Sharma
     [not found] ` <20260428204240.1924129-33-rppt@kernel.org>
2026-05-06 12:14   ` [PATCH v3 32/54] selftests/mm: gup_longterm: add setup of HugeTLB pages Sarthak Sharma
     [not found] ` <20260428204240.1924129-34-rppt@kernel.org>
2026-05-06 12:29   ` [PATCH v3 33/54] selftests/mm: gup_test: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-37-rppt@kernel.org>
2026-05-07  9:53   ` [PATCH v3 36/54] selftests/mm: hugetlb_fault_after_madv: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-38-rppt@kernel.org>
2026-05-07 10:28   ` [PATCH v3 37/54] selftests/mm: hugetlb-madvise: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-39-rppt@kernel.org>
2026-05-07 10:32   ` [PATCH v3 38/54] selftests/mm: hugetlb_madv_vs_map: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-40-rppt@kernel.org>
2026-05-07 10:38   ` [PATCH v3 39/54] selftests/mm: hugetlb-mmap: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-44-rppt@kernel.org>
2026-05-07 11:27   ` [PATCH v3 43/54] selftests/mm: hugetlb-vmemmap: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-45-rppt@kernel.org>
2026-05-07 11:36   ` Sarthak Sharma [this message]
     [not found] ` <20260428204240.1924129-46-rppt@kernel.org>
2026-05-07 11:41   ` [PATCH v3 45/54] selftests/mm: pagemap_ioctl: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-48-rppt@kernel.org>
2026-05-07 11:50   ` [PATCH v3 47/54] selftests/mm: thuge-gen: " Sarthak Sharma
     [not found] ` <20260428204240.1924129-49-rppt@kernel.org>
2026-05-07 11:58   ` [PATCH v3 48/54] selftests/mm: uffd-stress: use hugetlb_save and alloc huge pages Sarthak Sharma
     [not found] ` <20260428204240.1924129-54-rppt@kernel.org>
2026-05-07 12:07   ` [PATCH v3 53/54] selftests/mm: run_vmtests.sh: free memory if available memory is low Sarthak Sharma
     [not found] ` <20260428204240.1924129-55-rppt@kernel.org>
2026-05-07 12:10   ` [PATCH v3 54/54] selftests/mm: run_vmtests.sh: drop detection and setup of HugeTLB Sarthak Sharma

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=5102f1d4-e098-4a88-b4e0-ef693540e5ec@arm.com \
    --to=sarthak.sharma@arm.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=broonie@kernel.org \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=donettom@linux.ibm.com \
    --cc=jgg@ziepe.ca \
    --cc=jhubbard@nvidia.com \
    --cc=lance.yang@linux.dev \
    --cc=leon@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=luizcap@redhat.com \
    --cc=mhocko@suse.com \
    --cc=npache@redhat.com \
    --cc=peterx@redhat.com \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    --cc=surenb@google.com \
    --cc=vbabka@kernel.org \
    --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