Re: [PATCH resend ] tracepoint: Print the function symbol when tracepoint_debug is set

From: Mathieu Desnoyers
Date: Thu Mar 06 2025 - 11:42:12 EST


On 2025-03-06 10:13, Steven Rostedt wrote:
On Thu, 6 Mar 2025 11:37:38 +0800
Shijie Huang <shijie@xxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:

diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
index abfd0ac1177f..5a5041f32cc8 100644
--- a/kernel/tracepoint.c
+++ b/kernel/tracepoint.c
@@ -127,7 +127,8 @@ static void debug_print_probes(struct
tracepoint_func *funcs)
                return;

        for (i = 0; funcs[i].func; i++)
-               printk(KERN_DEBUG "Probe %d : %p\n", i, funcs[i].func);
+               printk(KERN_DEBUG "Probe %d : [ %p ] %pS\n",
+                               i, funcs[i].func, funcs[i].func);
 }


The output will look like:

[   63.818829] Probe 0 : [ 0000000032848d41 ]
perf_trace_sched_wakeup_template+0x0/0x20
[   63.819287] Probe 0 : [ 00000000fe8cca4d ]
perf_trace_sched_switch+0x0/0x20
[   65.325638] Probe 0 : [ 0000000032848d41 ]
perf_trace_sched_wakeup_template+0x0/0x20
[   65.695631] Probe 0 : [ 00000000fe8cca4d ]
perf_trace_sched_switch+0x0/0x20

I'm fine either way. Mathieu, what's your preference?

Although the above shows a hashed %p. Is that even useful?

The hashed %p is not really useful.

I think we could just print %Sb

e.g. from core-api/printk-formats.rst:

%pSb versatile_init+0x0/0x110 [module_name ed5019fdf5e53be37cb1ba7899292d7e143b259e]

AFAIU, when the kallsyms_lookup_buildid fails, it prints the raw address instead
(see __sprint_symbol).

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com