linux/arch/sh
Anton Blanchard 339ce1a4dc perf: Fix inconsistency between IP and callchain sampling
When running perf across all cpus with backtracing (-a -g), sometimes we
get samples without associated backtraces:

    23.44%         init  [kernel]                     [k] restore
    11.46%         init                       eeba0c  [k] 0x00000000eeba0c
     6.77%      swapper  [kernel]                     [k] .perf_ctx_adjust_freq
     5.73%         init  [kernel]                     [k] .__trace_hcall_entry
     4.69%         perf  libc-2.9.so                  [.] 0x0000000006bb8c
                       |
                       |--11.11%-- 0xfffa941bbbc

It turns out the backtrace code has a check for the idle task and the IP
sampling does not. This creates problems when profiling an interrupt
heavy workload (in my case 10Gbit ethernet) since we get no backtraces
for interrupts received while idle (ie most of the workload).

Right now x86 and sh check that current is not NULL, which should never
happen so remove that too.

Idle task's exclusion must be performed from the core code, on top
of perf_event_attr:exclude_idle.

Signed-off-by: Anton Blanchard <anton@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mundt <lethal@linux-sh.org>
LKML-Reference: <20100118054707.GT12666@kryten>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
2010-01-28 14:31:20 +01:00
..
boards sh: mach-ecovec24: setup.c detailed correction 2009-12-24 14:59:51 +09:00
boot sh: include empty zero page in romImage 2009-12-04 16:26:20 +09:00
cchips sh: mach-hp6xx: Fix up the hp6xx build for hd64461 changes. 2009-05-20 11:27:13 +09:00
configs sh: update defconfigs. 2010-01-04 15:38:50 +09:00
drivers sh: move machtypes.h to include/generated 2009-12-12 13:08:14 +01:00
include sh: Only provide a PCLK definition for legacy CPG CPUs. 2009-12-29 11:09:30 +09:00
kernel perf: Fix inconsistency between IP and callchain sampling 2010-01-28 14:31:20 +01:00
lib sh: Optimised memset for SH4 2009-11-24 16:28:43 +09:00
lib64 sh64: Kill off special clear_page() implementation. 2009-08-04 17:17:00 +09:00
math-emu sh: Minor optimisations to FPU handling 2009-11-24 17:45:38 +09:00
mm sh: Don't default enable PMB support. 2010-01-04 11:16:33 +09:00
oprofile sh: oprofile: Fix up count size mismatch for common impl. 2009-11-05 17:13:15 +09:00
tools sh: move machtypes.h to include/generated 2009-12-12 13:08:14 +01:00
Kconfig sh: Only provide a PCLK definition for legacy CPG CPUs. 2009-12-29 11:09:30 +09:00
Kconfig.cpu sh: Tidy up SH-4A boot_cpu_data.flags probing. 2009-06-01 19:50:08 +09:00
Kconfig.debug sh: Remove old early serial console code V2 2009-12-15 12:07:35 +09:00
Makefile sh: move machtypes.h to include/generated 2009-12-12 13:08:14 +01:00