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

Yajun Deng
2023-09-25T03:25:41Z

On 2023/9/22 16:08, Mike Rapoport wrote:
> 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.
>
I will send v2.  It will be simpler and safer.
>> --
>> Cheers,
>>
>> David / dhildenb
>>