Re: [PATCH] tracing/synthetic: Print out u64 values properly

From: Tero Kristo
Date: Fri Sep 15 2023 - 06:46:56 EST


Hi Masami,

On 15/09/2023 09:01, Masami Hiramatsu (Google) wrote:
Hi Tero,

On Mon, 11 Sep 2023 17:17:04 +0300
Tero Kristo <tero.kristo@xxxxxxxxxxxxxxx> wrote:

The synth traces incorrectly print pointer to the synthetic event values
instead of the actual value when using u64 type. Fix by addressing the
contents of the union properly.
Thanks for pointing it out.
But I would like to see a new "case 8:" print code instead of changing
"default". Can you keep the default as it is and add "case 8:" case there?

Are you sure about that? I think keeping the default as is would just print out a useless pointer value to the synth event itself (which is what happened with u64 type.)

Anyways, that requires a new patch to be created on top as this has hit the mainline as a fix already.

-Tero



Thanks,

Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Tero Kristo <tero.kristo@xxxxxxxxxxxxxxx>
---
kernel/trace/trace_events_synth.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
index 7fff8235075f..070365959c0a 100644
--- a/kernel/trace/trace_events_synth.c
+++ b/kernel/trace/trace_events_synth.c
@@ -337,7 +337,7 @@ static void print_synth_event_num_val(struct trace_seq *s,
break;
default:
- trace_seq_printf(s, print_fmt, name, val, space);
+ trace_seq_printf(s, print_fmt, name, val->as_u64, space);
break;
}
}
--
2.40.1