1
linux/arch
Anil S Keshavamurthy 1bd858a507 [PATCH] Notify page fault call chain for x86_64
Currently in the do_page_fault() code path, we call notify_die(DIE_PAGE_FAULT,
...) to notify the page fault.  Since notify_die() is highly overloaded, this
page fault notification is currently being sent to all the components
registered with register_die_notification() which uses the same die_chain to
loop for all the registered components which is unnecessary.

In order to optimize the do_page_fault() code path, this critical page fault
notification is now moved to different call chain and the test results showed
great improvements.

And the kprobes which is interested in this notifications, now registers onto
this new call chain only when it need to, i.e Kprobes now registers for page
fault notification only when their are an active probes and unregisters from
this page fault notification when no probes are active.

I have incorporated all the feedback given by Ananth and Keith and everyone,
and thanks for all the review feedback.

This patch:

Overloading of page fault notification with the notify_die() has performance
issues(since the only interested components for page fault is kprobes and/or
kdb) and hence this patch introduces the new notifier call chain exclusively
for page fault notifications their by avoiding notifying unnecessary
components in the do_page_fault() code path.

Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-26 09:58:22 -07:00
..
alpha [PATCH] oprofile: Fix unnecessary cleverness 2006-06-26 09:58:17 -07:00
arm [PATCH] kernel/sys.c: cleanups 2006-06-25 10:01:06 -07:00
arm26
cris [PATCH] mm: remove VM_LOCKED before remap_pfn_range and drop VM_SHM 2006-06-25 10:00:55 -07:00
frv [PATCH] More BUG_ON conversion 2006-06-23 07:43:08 -07:00
h8300 [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
i386 [PATCH] Kprobe: multi kprobe posthandler for booster 2006-06-26 09:58:22 -07:00
ia64 [PATCH] mm: remove VM_LOCKED before remap_pfn_range and drop VM_SHM 2006-06-25 10:00:55 -07:00
m32r
m68k [PATCH] arch: use list_move() 2006-06-26 09:58:17 -07:00
m68knommu [PATCH] m68knommu: improve syscall entry and fix strace 2006-06-25 21:04:24 -07:00
mips [PATCH] oprofile: Fix unnecessary cleverness 2006-06-26 09:58:17 -07:00
parisc [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
powerpc [PATCH] fix and optimize clock source update 2006-06-26 09:58:21 -07:00
ppc [PATCH] mm: remove VM_LOCKED before remap_pfn_range and drop VM_SHM 2006-06-25 10:00:55 -07:00
s390 [PATCH] s390: setup.c cleanup + build fix 2006-06-25 10:01:25 -07:00
sh [PATCH] oprofile: Fix unnecessary cleverness 2006-06-26 09:58:17 -07:00
sh64 [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
sparc [SBUS]: Rewrite and plug into of_device framework. 2006-06-23 23:15:50 -07:00
sparc64 [SPARC64]: Update defconfig. 2006-06-23 23:17:48 -07:00
um [PATCH] kernel/sys.c: cleanups 2006-06-25 10:01:06 -07:00
v850 [PATCH] fix incorrect SA_ONSTACK behaviour for 64-bit processes 2006-06-23 07:43:05 -07:00
x86_64 [PATCH] Notify page fault call chain for x86_64 2006-06-26 09:58:22 -07:00
xtensa [PATCH] mm: remove VM_LOCKED before remap_pfn_range and drop VM_SHM 2006-06-25 10:00:55 -07:00