Messages in this thread | | | Date | Wed, 27 Jan 2021 17:29:50 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH] tracing/kprobe: Fix to support kretprobe events on unloaded modules |
| |
On Thu, 28 Jan 2021 00:37:51 +0900 Masami Hiramatsu <mhiramat@kernel.org> wrote:
> Fix kprobe_on_func_entry() returns error code instead of false so that > register_kretprobe() can return an appropriate error code. > > append_trace_kprobe() expects the kprobe registration returns -ENOENT > when the target symbol is not found, and it checks whether the target > module is unloaded or not. If the target module doesn't exist, it > defers to probe the target symbol until the module is loaded. > > However, since register_kretprobe() returns -EINVAL instead of -ENOENT > in that case, it always fail on putting the kretprobe event on unloaded > modules. e.g. > > Kprobe event: > /sys/kernel/debug/tracing # echo p xfs:xfs_end_io >> kprobe_events > [ 16.515574] trace_kprobe: This probe might be able to register after target module is loaded. Continue. > > Kretprobe event: (p -> r) > /sys/kernel/debug/tracing # echo r xfs:xfs_end_io >> kprobe_events > sh: write error: Invalid argument > /sys/kernel/debug/tracing # cat error_log > [ 41.122514] trace_kprobe: error: Failed to register probe event > Command: r xfs:xfs_end_io > ^ > > To fix this bug, change kprobe_on_func_entry() to detect symbol lookup > failure and return -ENOENT in that case. Otherwise it returns -EINVAL > or 0 (succeeded, given address is on the entry). > > Reported-by: Jianlin Lv <Jianlin.Lv@arm.com> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Is this something that should go to stable? And if so, can you supply a Fixes tag?
Thanks Masami,
-- Steve
| |