Re: [PATCH v2 3/3] selftests/mm: init page sizes early in pagemap_ioctl test

From: Zenghui Yu

Date: Fri Sep 18 2026 - 03:00:18 EST


Hi David,

On 9/16/26 11:30 PM, David Hildenbrand (Arm) wrote:
> On 9/8/26 15:44, Zenghui Yu wrote:
> > From: "Zenghui Yu (Huawei)" <zenghui.yu@xxxxxxxxx>
> >
> > Initialize page_size and hpage_size before calling init_uffd(),
> > hugetlb_setup_default(), etc. That won't fix anything, but it is safer and
> > saner to get these globals set up before doing other things.
> >
> > While at it, drop the page_size parameter of transact_test(), which is
> > actually unnecessary.
> >
> > Suggested-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Zenghui Yu (Huawei) <zenghui.yu@xxxxxxxxx>
> > ---
> > tools/testing/selftests/mm/pagemap_ioctl.c | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/tools/testing/selftests/mm/pagemap_ioctl.c b/tools/testing/selftests/mm/pagemap_ioctl.c
> > index 1a87b7483316..d9a4fb782ecf 100644
> > --- a/tools/testing/selftests/mm/pagemap_ioctl.c
> > +++ b/tools/testing/selftests/mm/pagemap_ioctl.c
> > @@ -1489,7 +1489,7 @@ static void *thread_proc(void *mem)
> > return NULL;
> > }
> >
> > -static void transact_test(int page_size)
> > +static void transact_test(void)
> > {
> > unsigned int i, count, extra_pages;
> > unsigned int c;
> > @@ -1653,6 +1653,9 @@ int main(int __attribute__((unused)) argc, char *argv[])
> >
> > ksft_print_header();
> >
> > + page_size = getpagesize();
> > + hpage_size = read_pmd_pagesize();
> > +
> > if (init_uffd())
> > ksft_exit_skip("Failed to initialize userfaultfd\n");
> >
> > @@ -1661,9 +1664,6 @@ int main(int __attribute__((unused)) argc, char *argv[])
> >
> > ksft_set_plan(119);
> >
> > - page_size = getpagesize();
> > - hpage_size = read_pmd_pagesize();
> > -
> We have some other code rework that part, so I expect some conflicts for whoever
> goes in first.
>
> Why not
>
> initialize them right when defining the variables, marking them const?

I'm afraid I don't quite understand your suggestion. page_size and
hpage_size are static global variables which cannot be initialized at their
definition. What am I missing?

Thanks,
Zenghui