Re: [PATCH v3 36/54] selftests/mm: hugetlb_fault_after_madv: add setup of HugeTLB pages

From: Sarthak Sharma

Date: Thu May 07 2026 - 05:56:35 EST




On 4/29/26 2:12 AM, Mike Rapoport wrote:
> From: "Mike Rapoport (Microsoft)" <rppt@xxxxxxxxxx>
>
> hugetlb_fault_after_madv test skips testing 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.
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>

I have run the test before and after applying the patch. Before the
patch, the test skipped if there was not exactly 1 free hugepage
available. After the patch, it correctly allocates one hugepage and the
test passes successfully, restoring the original hugepage settings on exit.

Tested-by: Sarthak Sharma <sarthak.sharma@xxxxxxx>

> ---
> tools/testing/selftests/mm/hugetlb_fault_after_madv.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/mm/hugetlb_fault_after_madv.c b/tools/testing/selftests/mm/hugetlb_fault_after_madv.c
> index c718dd065d53..481863cc5fda 100644
> --- a/tools/testing/selftests/mm/hugetlb_fault_after_madv.c
> +++ b/tools/testing/selftests/mm/hugetlb_fault_after_madv.c
> @@ -54,7 +54,6 @@ void *madv(void *unused)
>
> int main(void)
> {
> - unsigned long free_hugepages;
> pthread_t thread1, thread2;
> /*
> * On kernel 6.4, we are able to reproduce the problem with ~1000
> @@ -78,10 +77,9 @@ int main(void)
> ksft_print_msg("[INFO] detected default hugetlb page size: %zu KiB\n",
> huge_page_size / 1024);
>
> - free_hugepages = hugetlb_free_default_pages();
> - if (free_hugepages != 1) {
> + if (!hugetlb_setup_default(1)) {
> ksft_exit_skip("This test needs one and only one page to execute. Got %lu\n",
> - free_hugepages);
> + hugetlb_free_default_pages());
> }
>
> while (max--) {