linux/arch
Rusty Lynch 9508dbfe39 [PATCH] Return probe redesign: ia64 specific implementation
The following patch implements function return probes for ia64 using
the revised design.  With this new design we no longer need to do some
of the odd hacks previous required on the last ia64 return probe port
that I sent out for comments.

Note that this new implementation still does not resolve the problem noted
by Keith Owens where backtrace data is lost after a return probe is hit.

Changes include:
 * Addition of kretprobe_trampoline to act as a dummy function for instrumented
   functions to return to, and for the return probe infrastructure to place
   a kprobe on on, gaining control so that the return probe handler
   can be called, and so that the instruction pointer can be moved back
   to the original return address.
 * Addition of arch_init(), allowing a kprobe to be registered on
   kretprobe_trampoline
 * Addition of trampoline_probe_handler() which is used as the pre_handler
   for the kprobe inserted on kretprobe_implementation.  This is the function
   that handles the details for calling the return probe handler function
   and returning control back at the original return address
 * Addition of arch_prepare_kretprobe() which is setup as the pre_handler
   for a kprobe registered at the beginning of the target function by
   kernel/kprobes.c so that a return probe instance can be setup when
   a caller enters the target function.  (A return probe instance contains
   all the needed information for trampoline_probe_handler to do it's job.)
 * Hooks added to the exit path of a task so that we can cleanup any left-over
   return probe instances (i.e. if a task dies while inside a targeted function
   then the return probe instance was reserved at the beginning of the function
   but the function never returns so we need to mark the instance as unused.)

Signed-off-by: Rusty Lynch <rusty.lynch@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-27 15:23:53 -07:00
..
alpha
arm Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2005-06-27 15:13:26 -07:00
arm26 [PATCH] use ${CROSS_COMPILE}installkernel in arch/*/boot/install.sh 2005-06-23 09:45:07 -07:00
cris
frv Merge Christoph's freeze cleanup patch 2005-06-25 17:16:53 -07:00
h8300 [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
i386 [PATCH] Return probe redesign: i386 specific changes 2005-06-27 15:23:53 -07:00
ia64 [PATCH] Return probe redesign: ia64 specific implementation 2005-06-27 15:23:53 -07:00
m32r [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
m68k
m68knommu
mips [PATCH] mips: fixed try_to_freeze build error 2005-06-27 15:11:42 -07:00
parisc
ppc [PATCH] ppc32: Remove CONFIG_PMAC_PBOOK 2005-06-27 15:11:43 -07:00
ppc64 [PATCH] kprobes: fix single-step out of line - take2 2005-06-27 15:23:52 -07:00
s390 [PATCH] kexec code cleanup 2005-06-25 16:24:55 -07:00
sh
sh64
sparc [PATCH] use drivers/Kconfig for sparc32 2005-06-23 09:45:33 -07:00
sparc64 [PATCH] compat: introduce compat_time_t 2005-06-23 09:45:32 -07:00
um [PATCH] uml: hot-unplug code cleanup 2005-06-25 16:24:36 -07:00
v850
x86_64 [PATCH] Return probe redesign: x86_64 specific changes 2005-06-27 15:23:53 -07:00
xtensa [PATCH] Serial: remove unnecessary register_serial/unregister_serial 2005-06-25 16:24:25 -07:00