On Thu, 22 Oct 2020 10:42:05 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > I'd like to see how batch functions will work. I guess I need to start > looking at the bpf trampoline, to see if we can modify the ftrace > trampoline to have a quick access to parameters. It would be much more > beneficial to update the existing generic function tracer to have access to > function parameters that all users could benefit from, than to tweak a > single use case into giving this feature to a single user. Looking at the creation of the bpf trampoline, I think I can modify ftrace to have a more flexible callback. Something that passes the callback the following: the function being traced. a pointer to the parent caller (that could be modified) a pointer to the original stack frame (what the stack was when the function is entered) An array of the arguments of the function (which could also be modified) This is a change I've been wanting to make for some time, because it would allow function graph to be a user of function tracer, and would give everything access to the arguments. We would still need a helper function to store all regs to keep kprobes working unmodified, but this would still only be done if asked. The above change shouldn't hurt performance for either ftrace or bpf because it appears they both do the same. If BPF wants to have a batch processing of functions, then I think we should modify ftrace to do this new approach instead of creating another set of function trampolines. -- Steve