On Wed, Apr 13, 2022 at 9:44 AM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > On Tue, 12 Apr 2022 09:49:23 +0900 > Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote: > > > > I'm really curious how did you manage to attach to everything in > > > available_filter_functions because when I'm trying to do that I fail. > > > available_filter_functions has a bunch of functions that should not be > > > attachable (e.g., notrace functions). Look just at __bpf_tramp_exit: > > > > > > void notrace __bpf_tramp_exit(struct bpf_tramp_image *tr); > > 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: void notrace __bpf_tramp_exit(struct bpf_tramp_image *tr) { percpu_ref_put(&tr->pcref); } > > -- Steve