path: root/mm/Kconfig
diff options
authorNick Piggin <>2008-07-25 19:45:22 -0700
committerLinus Torvalds <>2008-07-26 12:00:05 -0700
commit21cc199baa815d7b3f1ace4be20b9558cbddc00f (patch)
treeeb4f3fa42a83613e2fe586b2555a811740952dce /mm/Kconfig
parenta0a8f5364a5ad248aec6cb705e0092ff563edc2f (diff)
mm: introduce get_user_pages_fast
Introduce a new get_user_pages_fast mm API, which is basically a get_user_pages with a less general API (but still tends to be suited to the common case): - task and mm are always current and current->mm - force is always 0 - pages is always non-NULL - don't pass back vmas This restricted API can be implemented in a much more scalable way on many architectures when the ptes are present, by walking the page tables locklessly (no mmap_sem or page table locks). When the ptes are not populated, get_user_pages_fast() could be slower. This is implemented locklessly on x86, and used in some key direct IO call sites, in later patches, which provides nearly 10% performance improvement on a threaded database workload. Lots of other code could use this too, depending on use cases (eg. grep drivers/). And it might inspire some new and clever ways to use it. [ build fix] [ coding-style fixes] Signed-off-by: Nick Piggin <> Cc: Dave Kleikamp <> Cc: Andy Whitcroft <> Cc: Ingo Molnar <> Cc: Thomas Gleixner <> Cc: Andi Kleen <> Cc: Dave Kleikamp <> Cc: Badari Pulavarty <> Cc: Zach Brown <> Cc: Jens Axboe <> Reviewed-by: Peter Zijlstra <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'mm/Kconfig')
0 files changed, 0 insertions, 0 deletions