linux/arch/sh/kernel
Steven Rostedt (Red Hat) 7b2c862501 tracing: Add NMI tracing in hwlat detector
As NMIs can also cause latency when interrupts are disabled, the hwlat
detectory has no way to know if the latency it detects is from an NMI or an
SMI or some other hardware glitch.

As ftrace_nmi_enter/exit() funtions are no longer used (except for sh, which
isn't supported anymore), I converted those to "arch_ftrace_nmi_enter/exit"
and use ftrace_nmi_enter/exit() to check if hwlat detector is tracing or
not, and if so, it calls into the hwlat utility.

Since the hwlat detector only has a single kthread that is spinning with
interrupts disabled, it marks what CPU it is on, and if the NMI callback
happens on that CPU, it records the time spent in that NMI. This is added to
the output that is generated by the hwlat detector as:

 #3     inner/outer(us):    9/9     ts:1470836488.206734548
 #4     inner/outer(us):    0/8     ts:1470836497.140808588
 #5     inner/outer(us):    0/6     ts:1470836499.140825168 nmi-total:5 nmi-count:1
 #6     inner/outer(us):    9/9     ts:1470836501.140841748

All time is still tracked in microseconds.

The NMI information is only shown when an NMI occurred during the sample.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2016-09-02 12:47:55 -04:00
..
cpu sh: use common clock framework with device tree boards 2016-08-05 03:29:45 +00:00
vsyscall vdso: make arch_setup_additional_pages wait for mmap_sem for write killable 2016-05-23 17:04:14 -07:00
.gitignore
asm-offsets.c sh: Remove signal translation and exec_domain 2015-04-12 20:58:25 +02:00
crash_dump.c
debugtraps.S
disassemble.c
dma-nommu.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
dumpstack.c sh: fix format string bug in stack tracer 2014-04-03 16:20:49 -07:00
dwarf.c sh: Delete unnecessary checks before the function call "mempool_destroy" 2016-08-05 03:29:42 +00:00
entry-common.S sh: provide unified syscall trap compatible with all SH models 2016-03-17 19:46:06 +00:00
ftrace.c tracing: Add NMI tracing in hwlat detector 2016-09-02 12:47:55 -04:00
head_32.S sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE 2016-07-31 03:33:32 +00:00
head_64.S
hw_breakpoint.c sh: Replace __get_cpu_var uses 2014-06-04 16:53:52 -07:00
idle.c sched/idle, SH: Remove redundant cpuidle_idle_call() 2014-02-11 09:58:26 +01:00
io.c
io_trapped.c Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
iomap.c
ioport.c
irq.c sh/irq: Use access helper irq_data_get_affinity_mask() 2015-07-29 10:08:08 +02:00
irq_32.c
irq_64.c
kdebugfs.c
kgdb.c arch/sh/kernel/kgdb.c: add missing #include <linux/sched.h> 2014-01-21 16:19:42 -08:00
kprobes.c sh: Replace __get_cpu_var uses 2014-06-04 16:53:52 -07:00
machine_kexec.c
machvec.c
Makefile sh: remove arch-specific localtimer and use generic one 2016-03-17 19:46:09 +00:00
module.c
nmi_debug.c
perf_callchain.c perf core: Pass max stack as a perf_callchain_entry context 2016-05-16 23:11:50 -03:00
perf_event.c sh/perf: Convert the hotplug notifiers to state machine callbacks 2016-07-14 09:34:39 +02:00
process.c sh: delete __cpuinit usage from all sh files 2013-07-14 19:36:53 -04:00
process_32.c exit_thread: remove empty bodies 2016-05-20 17:58:30 -07:00
process_64.c exit_thread: accept a task parameter to be exited 2016-05-20 17:58:30 -07:00
ptrace.c
ptrace_32.c ARCH: AUDIT: audit_syscall_entry() should not require the arch 2014-09-23 16:21:26 -04:00
ptrace_64.c ARCH: AUDIT: audit_syscall_entry() should not require the arch 2014-09-23 16:21:26 -04:00
reboot.c
relocate_kernel.S
return_address.c
setup.c sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE 2016-07-31 03:33:32 +00:00
sh_bios.c
sh_ksyms_32.c sh: New gcc support 2016-03-17 19:45:44 +00:00
sh_ksyms_64.c
signal_32.c Merge branch 'exec_domain_rip_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc 2015-04-15 13:53:55 -07:00
signal_64.c Merge branch 'exec_domain_rip_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc 2015-04-15 13:53:55 -07:00
smp.c arch/sh changes for 4.6. They include minor cleanups, a fix for a 2016-03-19 16:09:43 -07:00
stacktrace.c
swsusp.c
sys_sh.c
sys_sh32.c sh: push extra copy of r0-r2 for syscall parameters 2014-04-03 16:20:52 -07:00
syscalls_32.S sh: system call wire up 2016-08-05 03:29:44 +00:00
syscalls_64.S sh: system call wire up 2016-08-05 03:29:44 +00:00
time.c These changes improve device tree support (including builtin DTB), add 2016-08-06 09:00:05 -04:00
topology.c sh: fix function signature of cpu_coregroup_mask to match pointer type 2016-03-30 00:47:49 +00:00
traps.c
traps_32.c sh: don't pass saved userspace state to exception handlers 2014-04-03 16:20:52 -07:00
traps_64.c arch/sh/kernel/traps_64.c: use sign_extend64() for sign extension 2015-11-06 17:50:42 -08:00
unwinder.c
vmlinux.lds.S arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections 2016-03-25 16:37:42 -07:00