kernel_optimize_test/arch/ia64
David Mosberger-Tang f8fa5448fc [IA64] Reschedule break_fault() for better performance.
This patch reorganizes break_fault() to optimistically assume that a
system-call is being performed from user-space (which is almost always
the case).  If it turns out that (a) we're not being called due to a
system call or (b) we're being called from within the kernel, we fixup
the no-longer-valid assumptions in non_syscall() and .break_fixup(),
respectively.

With this approach, there are 3 major phases:

 - Phase 1: Read various control & application registers, in
	    particular the current task pointer from AR.K6.
 - Phase 2: Do all memory loads (load system-call entry,
	    load current_thread_info()->flags, prefetch
	    kernel register-backing store) and switch
	    to kernel register-stack.
 - Phase 3: Call ia64_syscall_setup() and invoke
	    syscall-handler.

Good for 26-30 cycles of improvement on break-based syscall-path.

Signed-off-by: David Mosberger-Tang <davidm@hpl.hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-04-27 21:19:04 -07:00
..
configs [IA64-SGI] Bus driver for the CX port of SGI's TIO chip. 2005-04-25 13:09:41 -07:00
dig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hp [IA64] sba_iommu bug fixes 2005-04-25 13:14:36 -07:00
ia32 [IA64] ia32_signal.c: erroneous use of memset/memcpy 2005-04-22 13:06:47 -07:00
kernel [IA64] Reschedule break_fault() for better performance. 2005-04-27 21:19:04 -07:00
lib [IA64] __copy_user breaks on unaligned src 2005-04-25 13:23:47 -07:00
mm [IA64] Need to handle lfetch in "no_context" case. 2005-04-25 13:22:44 -07:00
oprofile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scripts Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sn [IA64-SGI] Altix SN add support for slots in geoid_t locator 2005-04-25 13:21:54 -07:00
defconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
install.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig From: jbarnes@sgi.com 2005-04-25 13:31:04 -07:00
Kconfig.debug Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module.lds Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00