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>


Reply via email to