On Thu, 22 Oct 2020 10:21:22 +0200 Jiri Olsa <jolsa@xxxxxxxxxx> wrote: > hi, > this patchset tries to speed up the attach time for trampolines > and make bpftrace faster for wildcard use cases like: > > # bpftrace -ve "kfunc:__x64_sys_s* { printf("test\n"); }" > > Profiles show mostly ftrace backend, because we add trampoline > functions one by one and ftrace direct function registering is > quite expensive. Thus main change in this patchset is to allow > batch attach and use just single ftrace call to attach or detach > multiple ips/trampolines. The issue I have with this change is that the purpose of the direct trampoline was to give bpf access to the parameters of a function as if it was called directly. That is, it could see the parameters of a function quickly. I even made the direct function work if it wanted to also trace the return code. What the direct calls is NOT, is a generic tracing function tracer. If that is required, then bpftrace should be registering itself with ftrace. If you are attaching to a set of functions, where it becomes obvious that its not being used to access specific parameters, then that's an abuse of the direct calls. We already have one generic function tracer, we don't need another. -- Steve