linux/arch/powerpc/kernel
Anton Blanchard 1bf4af1650 powerpc: tracing: Add powerpc tracepoints for interrupt entry and exit
This adds powerpc-specific tracepoints for interrupt entry and exit.

While we already have generic irq_handler_entry and irq_handler_exit
tracepoints there are cases on our virtualised powerpc machines where an
interrupt is presented to the OS, but subsequently handled by the hypervisor.
This means no OS interrupt handler is invoked.

Here is an example on a POWER6 machine with the patch below applied:

<idle>-0     [006]  3243.949840744: irq_entry: pt_regs=c0000000ce31fb10
<idle>-0     [006]  3243.949850520: irq_exit: pt_regs=c0000000ce31fb10

<idle>-0     [007]  3243.950218208: irq_entry: pt_regs=c0000000ce323b10
<idle>-0     [007]  3243.950224080: irq_exit: pt_regs=c0000000ce323b10

<idle>-0     [000]  3244.021879320: irq_entry: pt_regs=c000000000a63aa0
<idle>-0     [000]  3244.021883616: irq_handler_entry: irq=87 handler=eth0
<idle>-0     [000]  3244.021887328: irq_handler_exit: irq=87 return=handled
<idle>-0     [000]  3244.021897408: irq_exit: pt_regs=c000000000a63aa0

Here we see two phantom interrupts (no handler was invoked), followed
by a real interrupt for eth0. Without the tracepoints in this patch we
would have missed the phantom interrupts.

Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-10-28 16:13:03 +11:00
..
vdso32 Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
vdso64 Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
.gitignore powerpc: Ignore generated vmlinux.lds in git 2008-10-07 14:26:18 +11:00
Makefile perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
align.c powerpc: Create PPC_WARN_ALIGNMENT to match PPC_WARN_EMULATED 2009-10-28 16:13:03 +11:00
asm-offsets.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
audit.c
btext.c powerpc: Use the common ascii hex helpers 2008-08-20 16:34:57 +10:00
cacheinfo.c powerpc/cacheinfo: Rename cache_dir per-cpu variable 2009-01-13 14:48:02 +11:00
cacheinfo.h powerpc: Rewrite sysfs processor cache info code 2009-01-08 16:25:10 +11:00
clock.c
compat_audit.c
cpu_setup_6xx.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
cpu_setup_44x.S AMCC PPC 460SX redwood SoC platform initial framework 2009-02-14 14:41:29 -05:00
cpu_setup_fsl_booke.S powerpc/fsl-booke: Enable L1 cache on e500v1/e500v2/e500mc CPUs 2009-06-15 21:45:30 -05:00
cpu_setup_pa6t.S
cpu_setup_ppc970.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
cputable.c powerpc/book3e-64: Move the default cpu table entry 2009-08-28 14:24:13 +10:00
crash.c powerpc: Increase CRASH_HANDLER_MAX 2008-06-30 22:31:00 +10:00
crash_dump.c powerpc: Unify opcode definitions and support 2009-02-23 10:48:56 +11:00
dbell.c powerpc: Add support for using doorbells for SMP IPI 2009-02-23 15:53:03 +11:00
dma-iommu.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
dma-swiotlb.c powerpc: Handle SWIOTLB mapping error properly 2009-08-28 14:24:11 +10:00
dma.c powerpc: Rename get_dma_direct_offset get_dma_offset 2009-09-24 15:31:43 +10:00
entry_32.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
entry_64.S perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
exceptions-64e.S powerpc/book3e-64: Remove duplicated #include 2009-09-24 15:31:41 +10:00
exceptions-64s.S Merge commit 'paulus-perf/master' into next 2009-08-20 11:07:56 +10:00
firmware.c
fpu.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
ftrace.c Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 10:56:46 -07:00
head_8xx.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_32.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_40x.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_44x.S powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
head_64.S powerpc: Remaining 64-bit Book3E support 2009-08-20 10:25:11 +10:00
head_booke.h powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_fsl_booke.S powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
ibmebus.c powerpc: use dma_map_ops struct 2009-08-28 14:24:10 +10:00
idle.c powerpc: ftrace, do not latency trace idle 2008-11-20 10:51:15 -08:00
idle_6xx.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_e500.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_power4.S
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
io.c ftrace: support for PowerPC 2008-05-23 22:43:11 +02:00
iomap.c
iommu.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
irq.c powerpc: tracing: Add powerpc tracepoints for interrupt entry and exit 2009-10-28 16:13:03 +11:00
isa-bridge.c [POWERPC] Remove leftover printk in isa-bridge.c 2008-05-09 20:22:59 +10:00
kgdb.c kgdb, x86, arm, mips, powerpc: ignore user space single stepping 2008-09-26 10:36:41 -05:00
kprobes.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-01-07 11:31:52 -08:00
l2cr_6xx.S
legacy_serial.c powerpc/powermac: Fixup default serial port device for pmac_zilog 2008-07-28 16:30:53 +10:00
lparcfg.c powerpc/pseries: Fix to handle slb resize across migration 2009-09-02 16:19:01 +10:00
machine_kexec.c powerpc: Allow mem=x cmdline to work with 4G+ 2009-05-15 16:43:41 +10:00
machine_kexec_32.c kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
machine_kexec_64.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
misc.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
misc_32.S powerpc: Fix __flush_icache_range on 44x 2009-08-27 13:12:52 +10:00
misc_64.S powerpc: Move VMX and VSX asm code to vector.S 2009-06-09 16:46:25 +10:00
module.c module: cleanup FIXME comments about trimming exception table entries. 2009-06-12 21:47:05 +09:30
module_32.c powerpc/ppc32: ftrace, dynamic ftrace to handle modules 2008-11-20 10:52:53 -08:00
module_64.c powerpc: Unify opcode definitions and support 2009-02-23 10:48:56 +11:00
mpc7450-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
msi.c powerpc/PCI: include pci.h in powerpc MSI implementation 2009-03-25 08:54:29 -07:00
nvram_64.c
of_device.c powerpc/of: Fix usage of dev_set_name() in of_device_alloc() 2009-06-26 16:55:35 +10:00
of_platform.c powerpc/pci: Merge ppc32 and ppc64 versions of phb_scan() 2009-09-02 15:45:53 +10:00
paca.c powerpc: Add PACA fields specific to 64-bit Book3E processors 2009-08-20 10:25:08 +10:00
pci-common.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
pci_32.c powerpc/pci: Merge ppc32 and ppc64 versions of phb_scan() 2009-09-02 15:45:53 +10:00
pci_64.c PCI/powerpc: support PCIe fundamental reset 2009-09-09 13:29:41 -07:00
pci_dn.c powerpc/pci: Move pseries code into pseries platform specific area 2009-05-21 15:44:24 +10:00
pci_of_scan.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-16 07:49:54 -07:00
perf_callchain.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
perf_event.c powerpc: perf_event: Log invalid data addresses as all 1s 2009-10-28 16:13:02 +11:00
pmc.c
power4-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
power5+-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
power5-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
power6-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
power7-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
ppc32.h powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
ppc970-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
ppc_ksyms.c powerpc: Export cacheable_memzero as its now used in a driver 2009-01-08 16:25:17 +11:00
ppc_save_regs.S powerpc: Prepare xmon_save_regs for use with kdump 2008-12-23 15:13:28 +11:00
proc_ppc64.c powerpc: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
process.c powerpc: Move 64bit heap above 1TB on machines with 1TB segments 2009-09-24 15:31:44 +10:00
prom.c powerpc: Shield code specific to 64-bit server processors 2009-06-09 16:47:38 +10:00
prom_init.c powerpc: Fix ibm,client-architecture-support printout 2009-09-24 15:31:47 +10:00
prom_init_check.sh powerpc: Print linux_banner in prom_init 2009-03-11 17:11:33 +11:00
prom_parse.c powerpc: Fix of_node_put() exit path in of_irq_map_one() 2009-04-20 12:18:43 -06:00
ptrace.c powerpc: Fix booke user_disable_single_step() 2009-07-15 17:41:45 +10:00
ptrace32.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
reloc_64.S powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
rtas-proc.c [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
rtas-rtc.c
rtas.c powerpc/pseries: Fix to handle slb resize across migration 2009-09-02 16:19:01 +10:00
rtas_flash.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
rtas_pci.c powerpc/pci: Clean up direct access to sysdata by RTAS 2009-05-21 15:44:23 +10:00
setup-common.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2009-09-23 18:14:11 -07:00
setup.h
setup_32.c powerpc/nvram: Enable use Generic NVRAM driver for different size chips 2009-09-11 16:02:11 +10:00
setup_64.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-15 09:51:09 -07:00
signal.c powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
signal.h powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
signal_32.c powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
signal_64.c powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
smp-tbsync.c powerpc: Silence software timebase sync 2008-11-05 22:08:28 +11:00
smp.c cpumask: Use accessors for cpu_*_mask: powerpc 2009-09-24 09:34:48 +09:30
softemu8xx.c Remove asm/a.out.h files for all architectures without a.out support. 2008-09-06 19:30:24 +01:00
stacktrace.c powerpc: Removed duplicated include in stacktrace.c 2008-07-28 16:30:47 +10:00
suspend.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
swsusp.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
swsusp_32.S powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
swsusp_64.c
swsusp_asm64.S powerpc: Fix 64-bit hibernation with 64k pages 2008-10-07 14:26:20 +11:00
sys_ppc32.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
syscalls.c powerpc/mm: Add Strong Access Ordering support 2008-07-09 16:30:45 +10:00
sysfs.c powerpc: Fix bug where perf_counters breaks oprofile 2009-09-11 11:27:58 +10:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c on_each_cpu(): kill unused 'retry' parameter 2008-06-26 11:24:38 +02:00
time.c Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-23 09:46:15 -07:00
traps.c powerpc: Create PPC_WARN_ALIGNMENT to match PPC_WARN_EMULATED 2009-10-28 16:13:03 +11:00
udbg.c powerpc/udbg: Fix lost byte during console handover; change LFCR to CRLF 2009-03-11 17:11:34 +11:00
udbg_16550.c trivial: fix typo "for for" in multiple files 2009-09-21 15:14:54 +02:00
vdso.c powerpc/perf_counter: Fix vdso detection 2009-09-24 15:31:45 +10:00
vecemu.c
vector.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
vio.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
vmlinux.lds.S powerpc: Cleanup linker script using new linker script macros. 2009-09-24 15:31:48 +10:00