FROMLIST: mm: introduce CONFIG_SPECULATIVE_PAGE_FAULT

This configuration variable will be used to build the code needed to
handle speculative page fault.

By default it is turned off, and activated depending on architecture
support, SMP and MMU.

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Suggested-by: David Rientjes <rientjes@google.com>
Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Change-Id: I17123124ec0667a0f0af741a740e5219d278620c
Link: https://lore.kernel.org/lkml/1523975611-15978-2-git-send-email-ldufour@linux.vnet.ibm.com/
Bug: 161210518
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
This commit is contained in:
Laurent Dufour 2018-04-17 16:33:07 +02:00 committed by Suren Baghdasaryan
parent a8198d1062
commit 1ca86fafc5

View File

@ -821,6 +821,28 @@ config PERCPU_STATS
information includes global and per chunk statistics, which can
be used to help understand percpu memory usage.
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
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() and related calls benchmarking"
help