Loading mm/Kconfig +23 −0 Original line number Diff line number Diff line Loading @@ -779,6 +779,29 @@ config HAVE_USERSPACE_LOW_MEMORY_KILLER when the OOM killer and userspace memory killer both have the potential to run). config ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT def_bool n config SPECULATIVE_PAGE_FAULT bool "Speculative page faults" default y depends on ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT depends on MMU && SMP depends on QGKI help Try to handle user space page faults without holding the mmap_sem. This should allow better concurrency for massively threaded process since the page fault handler will not wait for other threads memory layout change to be done, assuming that this change is done in another part of the process's memory space. This type of page fault is named speculative page fault. If the speculative page fault fails because of a concurrency is detected or because underlying PMD or PTE tables are not yet allocating, it is failing its processing and a classic page fault is then tried. config GUP_BENCHMARK bool "Enable infrastructure for get_user_pages_fast() benchmarking" help Loading Loading
mm/Kconfig +23 −0 Original line number Diff line number Diff line Loading @@ -779,6 +779,29 @@ config HAVE_USERSPACE_LOW_MEMORY_KILLER when the OOM killer and userspace memory killer both have the potential to run). config ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT def_bool n config SPECULATIVE_PAGE_FAULT bool "Speculative page faults" default y depends on ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT depends on MMU && SMP depends on QGKI help Try to handle user space page faults without holding the mmap_sem. This should allow better concurrency for massively threaded process since the page fault handler will not wait for other threads memory layout change to be done, assuming that this change is done in another part of the process's memory space. This type of page fault is named speculative page fault. If the speculative page fault fails because of a concurrency is detected or because underlying PMD or PTE tables are not yet allocating, it is failing its processing and a classic page fault is then tried. config GUP_BENCHMARK bool "Enable infrastructure for get_user_pages_fast() benchmarking" help Loading