On 17.01.23 10:19, Yin, Fengwei wrote:
On 1/14/2023 2:13 AM, Matthew Wilcox wrote:
On Sat, Jan 14, 2023 at 12:35:38AM +0800, Yin Fengwei wrote:
The page fault number can be reduced by batched PTEs population.
The batch size of PTEs population is not allowed to cross:
- page table boundaries
- vma range
- large folio size
- fault_around_bytes
I find this patch very interesting. But is it really worth it? Most
file-backed page faults are resolved through the ->map_pages() path
which is almost always filemap_map_pages(), which does something
fairly similar to this already. Do you have any performance numbers?
I tried the will-it-scale page_fault3:
https://github.com/antonblanchard/will-it-scale/blob/master/tests/page_fault3.c
with 96 processes on a test box with 48C/86T.
The test result got about 3.75X better with 4.1X less page fault number
with this patch.
But It's a micro benchmark which shows extreme friendly case to this patch.
I didn't see observed performance gain with other workloads. I suppose
shared file write operations may not be common operations? Thanks.
One question I have after reading "which does something fairly similar
to this already", if both paths could be unified.
--
Thanks,
David / dhildenb