|
|
Log in / Subscribe / Register

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.


to post comments

The ongoing search for mmap_lock scalability

Posted May 7, 2022 22:24 UTC (Sat) by willy (subscriber, #9762) [Link]

By the time we call the driver, we already allocated all the way down to the PMD level, so that's all fine.

In my plan, drivers that want to opt into RCU page fault handling get to implement map_pages. Although the other MM developers have asked that we not do full RCU page fault handling until it's proven necessary.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds