Re: [PATCH 1/4] mm: pass set_count and set_reserved to __init_single_page

Mike Rapoport
2023-09-22T08:10:18Z

On Fri, Sep 22, 2023 at 09:48:59AM +0200, David Hildenbrand wrote:
> On 22.09.23 09:47, Matthew Wilcox wrote:
> > On Fri, Sep 22, 2023 at 03:09:20PM +0800, Yajun Deng wrote:
> > > - __init_single_page(page, pfn, zone, nid);
> > > + __init_single_page(page, pfn, zone, nid, true, false);
> >
> > So Linus has just had a big rant about not doing bool flags to
> > functions. And in particular _multiple_ bool flags to functions.
> >
> > ie this should be:
> >
> > #define INIT_PAGE_COUNT (1 << 0)
> > #define INIT_PAGE_RESERVED (1 << 1)
> >
> > __init_single_page(page, pfn, zone, nid, INIT_PAGE_COUNT);
> >
> > or something similar.
> >
> > I have no judgement on the merits of this patch so far. Do you have
> > performance numbers for each of these patches? Some of them seem quite
> > unlikely to actually help, at least on a machine which is constrained
> > by cacheline fetches.
>
> The last patch contains
>
> before:
> node 0 deferred pages initialised in 78ms
>
> after:
> node 0 deferred pages initialised in 72ms
>
> Not earth-shattering :D Maybe with much bigger machines relevant?

Patch 3 contains

The following data was tested on an x86 machine with 190GB of RAM.

before:
free_low_memory_core_early() 342ms

after:
free_low_memory_core_early() 286ms

Which is more impressive, but still I'm not convinced that it's worth the
added complexity and potential subtle bugs.

> --
> Cheers,
>
> David / dhildenb
>

--
Sincerely yours,
Mike.