Re: [PATCH] perf: Fix inconsistency between IP and callchain sampling

Frederic Weisbecker
2010-01-21T13:20:23Z

On Mon, Jan 18, 2010 at 04:47:07PM +1100, Anton Blanchard wrote:
>
> 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.
>
> Signed-off-by: Anton Blanchard <anton@samba.org>

I'm queuing it. Thanks.