Re: [PATCH v1 02/18] mm/rmap: always inline anon/file rmap duplication of a single PTE

David Hildenbrand
2024-04-19T09:14:24Z

On 19.04.24 04:25, Yin, Fengwei wrote:
>
>
> On 4/10/2024 3:22 AM, David Hildenbrand wrote:
>> As we grow the code, the compiler might make stupid decisions and
>> unnecessarily degrade fork() performance. Let's make sure to always inline
>> functions that operate on a single PTE so the compiler will always
>> optimize out the loop and avoid a function call.
>>
>> This is a preparation for maintining a total mapcount for large folios.
>>
>> Signed-off-by: David Hildenbrand<david@redhat.com>
> The patch looks good to me. Just curious: Is this change driven by code
> reviewing or performance data profiling? Thanks.

It was identified while observing an performance degradation with small
folios in the fork() microbenchmark discussed in the cover letter
(mentioned here as "unnecessarily degrade fork() performance").

The added atomic_add() was sufficient for the compiler not inline and
optimize-out nr_pages, inserting a function call to a function where
nr_pages is not optimized out.

--
Cheers,

David / dhildenb