Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb1b5355 authored by Laurent Dufour's avatar Laurent Dufour Committed by Charan Teja Reddy
Browse files

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: default avatarThomas Gleixner <tglx@linutronix.de>
Suggested-by: default avatarDavid Rientjes <rientjes@google.com>
Signed-off-by: default avatarLaurent Dufour <ldufour@linux.vnet.ibm.com>
Change-Id: I17123124ec0667a0f0af741a740e5219d278620c
Patch-mainline: linux-mm @ Tue, 17 Apr 2018 16:33:07
[vinmenon@codeaurora.org: trivial merge conflict fixes]
Signed-off-by: default avatarVinayak Menon <vinmenon@codeaurora.org>
parent ea37f3c4
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -772,6 +772,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_fast() benchmarking"
	default n