Re: [PATCH v6 bpf-next 08/11] bpf: introduce BPF_RAW_TRACEPOINT
From: Alexei Starovoitov <hidden>
Date: 2018-03-27 22:49:48
Also in:
netdev
On 3/27/18 2:04 PM, Steven Rostedt wrote:
+#ifdef CONFIG_BPF_EVENTS +#define BPF_RAW_TP() . = ALIGN(8); \ + VMLINUX_SYMBOL(__start__bpf_raw_tp) = .; \ + KEEP(*(__bpf_raw_tp_map)) \ + VMLINUX_SYMBOL(__stop__bpf_raw_tp) = .;
that looks to be correct, but something wrong with it. Can you try your mini test with kasan on ? I'm seeing this crash: test_stacktrace_[ 18.760662] start ffffffff84642438 stop ffffffff84644f60 map_raw_tp:PASS:[ 18.761467] i 1 btp->tp cccccccccccccccc prog_load raw tp[ 18.762064] kasan: CONFIG_KASAN_INLINE enabled 0 nsec [ 18.762704] kasan: GPF could be caused by NULL-ptr deref or user memory access [ 18.765125] general protection fault: 0000 [#1] SMP KASAN PTI [ 18.765830] Modules linked in: [ 18.778358] Call Trace: [ 18.778674] bpf_raw_tracepoint_open.isra.27+0x92/0x380 for some reason the start_bpf_raw_tp is off by 8. Not sure how it works for you. (gdb) p &__bpf_trace_tp_map_sys_exit $10 = (struct bpf_raw_event_map *) 0xffffffff84642440 <__bpf_trace_tp_map_sys_exit> (gdb) p &__start__bpf_raw_tp $7 = (<data variable, no debug info> *) 0xffffffff84642438 (gdb) p (void*)(&__start__bpf_raw_tp)+8 $11 = (void *) 0xffffffff84642440 <__bpf_trace_tp_map_sys_exit>