aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/mm/fault.c
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-03-28 22:54:38 -0800
committerTony Luck <tony.luck@intel.com>2006-04-07 23:08:16 -0700
commit0ffe984917b9cd6ecc19ffbc06f35869d8c18df8 (patch)
tree49b54ea585dcd657083c8b755726820b002ae75a /arch/ia64/mm/fault.c
parent[IA64] Failure to resume after INIT in user space (diff)
downloadlinux-dev-0ffe984917b9cd6ecc19ffbc06f35869d8c18df8.tar.xz
linux-dev-0ffe984917b9cd6ecc19ffbc06f35869d8c18df8.zip
[IA64] Prefetch mmap_sem in ia64_do_page_fault()
Take a hint from an x86_64 optimization by Arjan van de Ven and use it for ia64. See a9ba9a3b3897561d01e04cd21433746df46548c0 Prefetch the mmap_sem, which is critical for the performance of the page fault handler. Note: mm may be NULL but I guess that is safe. See 458f935527372499b714bf4f8e646a68bb0f52e3 Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/mm/fault.c')
-rw-r--r--arch/ia64/mm/fault.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index af7eb087dca7..d98ec49570b8 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -60,6 +60,9 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
struct siginfo si;
unsigned long mask;
+ /* mmap_sem is performance critical.... */
+ prefetchw(&mm->mmap_sem);
+
/*
* If we're in an interrupt or have no user context, we must not take the fault..
*/