trace/kprobe: Display the actual notrace function when rejecting a probe
authorNaveen N Rao <naveen@kernel.org>
Thu, 14 Dec 2023 05:17:02 +0000 (10:47 +0530)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Sun, 17 Dec 2023 07:28:54 +0000 (16:28 +0900)
Trying to probe update_sd_lb_stats() using perf results in the below
message in the kernel log:
trace_kprobe: Could not probe notrace function _text

This is because 'perf probe' specifies the kprobe location as an offset
from '_text':
$ sudo perf probe -D update_sd_lb_stats
p:probe/update_sd_lb_stats _text+1830728

However, the error message is misleading and doesn't help convey the
actual notrace function that is being probed. Fix this by looking up the
actual function name that is being probed. With this fix, we now get the
below message in the kernel log:
trace_kprobe: Could not probe notrace function update_sd_lb_stats.constprop.0

Link: https://lore.kernel.org/all/20231214051702.1687300-1-naveen@kernel.org/
Signed-off-by: Naveen N Rao <naveen@kernel.org>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
kernel/trace/trace_kprobe.c

index 52f8b53..c4c6e0e 100644 (file)
@@ -487,8 +487,8 @@ static int __register_trace_kprobe(struct trace_kprobe *tk)
                return -EINVAL;
 
        if (within_notrace_func(tk)) {
-               pr_warn("Could not probe notrace function %s\n",
-                       trace_kprobe_symbol(tk));
+               pr_warn("Could not probe notrace function %ps\n",
+                       (void *)trace_kprobe_address(tk));
                return -EINVAL;
        }