kernel-ark/arch/ppc64/kernel
Rusty Lynch 97f7943d70 [PATCH] Return probe redesign: ppc64 specific implementation
The following is a patch provided by Ananth Mavinakayanahalli that implements
the new PPC64 specific parts of the new function return probe design.

NOTE: Since getting Ananth's patch, I changed trampoline_probe_handler()
      to consume each of the outstanding return probem instances (feedback
      on my original RFC after Ananth cut a patch), and also added the
      arch_init() function (adding arch specific initialization.) I have
      cross compiled but have not testing this on a PPC64 machine.

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
..
vdso32
vdso64
align.c
asm-offsets.c
binfmt_elf32.c
bitops.c
bpa_iic.c
bpa_iic.h
bpa_iommu.c
bpa_iommu.h
bpa_nvram.c
bpa_setup.c
btext.c
cpu_setup_power4.S
cputable.c
dma.c
eeh.c
entry.S
head.S [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00
HvCall.c
hvCall.S
hvconsole.c
hvcserver.c
HvLpConfig.c
HvLpEvent.c
i8259.c
i8259.h
idle_power4.S
idle.c
init_task.c
ioctl32.c
iomap.c
iommu.c
irq.c
iSeries_htab.c
iSeries_iommu.c
iSeries_irq.c
iSeries_pci.c
iSeries_proc.c
iSeries_setup.c
iSeries_setup.h
iSeries_smp.c
iSeries_VpdInfo.c
ItLpQueue.c
kprobes.c [PATCH] Return probe redesign: ppc64 specific implementation 2005-06-27 15:23:53 -07:00
lmb.c
lparcfg.c [PATCH] ppc64: Fix compile warnings in arch/ppc64/kernel/lparcfg.c 2005-06-25 16:24:27 -07:00
LparData.c
machine_kexec.c [PATCH] kexec code cleanup 2005-06-25 16:24:55 -07:00
Makefile [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00
maple_pci.c
maple_setup.c
maple_time.c
mf.c
misc.S [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00
module.c
mpic.c [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00
mpic.h [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00
nvram.c
of_device.c
pacaData.c
pci_direct_iommu.c
pci_dn.c
pci_iommu.c
pci.c
pci.h
pmac_feature.c
pmac_low_i2c.c
pmac_nvram.c
pmac_pci.c
pmac_setup.c
pmac_smp.c
pmac_time.c
pmac.h
pmc.c
ppc_ksyms.c [PATCH] ppc64: Add missing exports 2005-06-27 15:11:43 -07:00
proc_ppc64.c
process.c [PATCH] Return probe redesign: ppc64 specific implementation 2005-06-27 15:23:53 -07:00
prom_init.c
prom.c
pSeries_hvCall.S
pSeries_iommu.c
pSeries_lpar.c
pSeries_nvram.c
pSeries_pci.c
pSeries_reconfig.c
pSeries_setup.c [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00
pSeries_smp.c [PATCH] i386 CPU hotplug 2005-06-25 16:24:29 -07:00
ptrace32.c
ptrace.c [PATCH] ppc64: fix seccomp with 32-bit userland 2005-06-24 00:05:18 -07:00
ras.c
rtas_flash.c
rtas_pci.c
rtas-proc.c
rtas.c
rtasd.c
rtc.c
scanlog.c
semaphore.c
setup.c [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00
signal32.c
signal.c
smp-tbsync.c
smp.c
spider-pic.c
sys_ppc32.c
syscalls.c
sysfs.c
time.c [PATCH] ppc64: Add missing exports 2005-06-27 15:11:43 -07:00
traps.c
u3_iommu.c
udbg.c
vdso.c
vecemu.c
vector.S
vio.c
viopath.c
vmlinux.lds.S
xics.c [PATCH] ppc64: kexec support for ppc64 2005-06-25 16:24:51 -07:00