Re: [PATCH bpf-next v2 04/18] ftrace: add reset_ftrace_direct_ips
From: Menglong Dong <hidden>
Date: 2025-07-08 01:27:00
Also in:
linux-trace-kernel, lkml
On Tue, Jul 8, 2025 at 2:52 AM Steven Rostedt [off-list ref] wrote:
On Fri, 4 Jul 2025 09:54:52 +0800 Menglong Dong [off-list ref] wrote:quoted
quoted
What exactly do you mean by "reset"?It means to reset the filter hash of the ftrace_ops to ips. In the origin logic, the filter hash of a direct ftrace_ops will not be changed. However, in the tracing-multi case, there are multi functions in the filter hash and can change. This function is used to change the filter hash of a direct ftrace_ops.The above still doesn't make sense to me. Can you explain more what exactly you are doing at a higher level? To me "reset" means to set back to what it originally was (which usually is zero or nothing).
Yeah, with pleasure. When we need to update the functions to filter for a ftrace_ops, we can use ftrace_set_filter_ips(), which is able to add, remove and reset the functions to filter. However, we don't have a function to do similar things for a direct ftrace_ops. What reset_ftrace_direct_ips() do is the same as ftrace_set_filter_ips() when the "reset" argument of it is 1, and that's why I call it "reset". Or we can name it something else, such as "update"? The use case is for the global trampoline. BPF global trampoline has a direct ftrace_ops. When we attach new tracing-multi progs to the new kernel functions, we need to add these functions to the ftrace_ops of the bpf global trampoline. The "reset_ftrace_direct_ips" can do both adding and removing things for the direct ftrace_ops. We will get all the functions for the global trampoline, and "reset" the functions to filter of the ftrace_ops to them. Hoping I expressed it clearly :/ Thanks! Menglong Dong
-- Steve