The ongoing search for mmap_lock scalability
The ongoing search for mmap_lock scalability
Posted May 7, 2022 19:59 UTC (Sat) by luto (subscriber, #39314)Parent article: The ongoing search for mmap_lock scalability
On x86 (and probably most or even all other architectures), the total memory that a page fault might need to allocate for page table filling purposes is bounded and quite small. It would seem entirely reasonable and not necessarily even particularly difficult for do_user_addr_fault to grab its five pages in advance and avoid GFP_KERNEL allocations. The only real issue is that the control flow is backwards - the actual peg table setup in called from driver code.
We could perhaps have a per-task lookaside list for these pages, though, or a per-task “don’t-use-GFP_KERNEL” flag.
