Re: perf_callchain_user oops
From: Dave Jones
Date: Thu Mar 23 2017 - 09:58:00 EST
On Thu, Mar 23, 2017 at 10:40:22AM +0100, Peter Zijlstra wrote:
> On Wed, Mar 22, 2017 at 10:58:04PM -0400, Dave Jones wrote:
> > Not seen this one before..
> >
> > Oops: 0002 [#1] PREEMPT SMP DEBUG_PAGEALLOC
>
> That's a write fault reaching no_context() afaict.
>
> > CPU: 1 PID: 24420 Comm: trinity-main Not tainted 4.11.0-rc3-think+ #3
> > task: ffff8804f4c85440 task.stack: ffffc90001d38000
> > RIP: 0010:perf_callchain_user+0x11e/0x220
> > RSP: 0000:ffffc90001d3ba98 EFLAGS: 00010246
> > RAX: ffff88044c59c2a8 RBX: ffffc90001d3bae8 RCX: 0000562bce3f6e40
> > RDX: 0000562bce3f6e40 RSI: 00007fffffffeff0 RDI: 0000000000000000
> > RBP: ffffc90001d3bab8 R08: 00000000bffffff0 R09: 00000000ffffdff0
> > R10: 0000000000002faa R11: 0000000000002fab R12: ffff8804f4c85440
> > R13: ffffc90001d3bf58 R14: ffffc90001d3bf58 R15: 0000000000000000
> > FS: 00007f34b3969b40(0000) GS:ffff880507a00000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: ffff88044c5b4000 CR3: 000000044c584000 CR4: 00000000001406e0
> > DR0: 00007f34b382e000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
> > Call Trace:
> > get_perf_callchain+0x258/0x2b0
> > perf_callchain+0x79/0x80
> > perf_prepare_sample+0x27e/0x360
> > perf_event_output_forward+0x75/0x160
>
> Any chance you could run scripts/faddr2line on this output?
>
> I cannot seem to match the Code with a defconfig build of that function.
$ scripts/faddr2line arch/x86/events/core.o perf_callchain_user+0x11e
perf_callchain_user+0x11e/0x220:
perf_callchain_store at include/linux/perf_event.h:1148
(inlined by) perf_callchain_user at arch/x86/events/core.c:2444
$ scripts/faddr2line kernel/events/callchain.o get_perf_callchain+0x258/0x2b0 perf_callchain+0x79/0x80
get_perf_callchain+0x258/0x2b0:
get_perf_callchain at kernel/events/callchain.c:237
perf_callchain+0x79/0x80:
perf_callchain at kernel/events/callchain.c:194
$ scripts/faddr2line kernel/events/core.o perf_prepare_sample+0x27e/0x360
perf_prepare_sample+0x27e/0x360:
perf_prepare_sample at kernel/events/core.c:5991
$ scripts/faddr2line kernel/events/core.o perf_event_output_forward+0x75/0x160
perf_event_output_forward+0x75/0x160:
__perf_event_output at kernel/events/core.c:6104
(inlined by) perf_event_output_forward at kernel/events/core.c:6120