linux/arch/x86_64
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
..
boot [PATCH] vesafb: Fix incorrect logo colors in x86_64 2006-04-11 06:18:54 -07:00
crypto [CRYPTO] aes: Fixed array boundary violation 2006-03-21 20:14:10 +11:00
ia32 [PATCH] sys_move_pages: 32bit support (i386, x86_64) 2006-06-23 07:42:53 -07:00
kernel [PATCH] make pmtmr_ioport __read_mostly 2006-06-26 09:58:21 -07:00
lib [PATCH] x86_64: remove dead do_softirq_thunk 2006-03-25 09:10:53 -08:00
mm [PATCH] Notify page fault call chain for x86_64 2006-06-26 09:58:22 -07:00
oprofile [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
pci [PATCH] PCI: fix issues with extended conf space when MMCONFIG disabled because of e820 2006-06-21 12:00:01 -07:00
defconfig [PATCH] x86_64: Update defconfig 2006-04-18 10:39:19 -07:00
Kconfig Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2006-06-23 07:52:36 -07:00
Kconfig.debug [PATCH] x86_64: Remove CONFIG_INIT_DEBUG 2006-02-04 16:43:13 -08:00
Makefile [PATCH] x86_64: fix CONFIG_REORDER 2006-04-09 11:53:53 -07:00