Re: [PATCH v1 02/18] mm/rmap: always inline anon/file rmap duplication of a single PTE
From: David Hildenbrand
Date: Fri Apr 19 2024 - 05:14:50 EST
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@xxxxxxxxxx>
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