On Wed, Apr 13, 2022 at 9:59 AM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > On Wed, 13 Apr 2022 09:45:52 -0700 > Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > > > Did you only use the "notrace" on the prototype? I see the semicolon at > > > the end of your comment. It only affects the actual function itself, > > > not the prototype. > > > > notrace is both on declaration and on definition, see kernel/bpf/trampoline.c: > > OK. Note, it only needs to be on the function, the prototype doesn't do > anything. But that shouldn't be the issue. > > > > > void notrace __bpf_tramp_exit(struct bpf_tramp_image *tr) > > { > > percpu_ref_put(&tr->pcref); > > } > > > > What compiler are you using? as this seems to be a compiler bug. > Because it's not ftrace that picks what functions to trace, but the > compiler itself. I build my local kernel with $ gcc --version gcc (GCC) 11.1.1 20210623 (Red Hat 11.1.1-6) But we have the same issue in our production kernels which are most probably built with some other version of GCC, but I don't know which one. > > -- Steve > >