Message ID | 20230911141704.3585965-1-tero.kristo@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 62663b849662c1a5126b6274d91671b90566ef13 |
Headers | show |
Series | tracing/synthetic: Print out u64 values properly | expand |
Hi Tero, On Mon, 11 Sep 2023 17:17:04 +0300 Tero Kristo <tero.kristo@linux.intel.com> 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? Thanks, > > Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts") > Cc: stable@vger.kernel.org > Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com> > --- > 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 >
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@linux.intel.com> 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@vger.kernel.org >> Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com> >> --- >> 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 >> >
Hi Tero, On Fri, 15 Sep 2023 13:46:45 +0300 Tero Kristo <tero.kristo@linux.intel.com> wrote: > 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@linux.intel.com> 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.) Yeah, I think the "default" here means no correct way to show the value in it. So anyway, if we know the size is 8 and there is val->as_u64, there should be "case 8:". > > Anyways, that requires a new patch to be created on top as this has hit > the mainline as a fix already. Oops, I missed that. Thank you! > > -Tero > > > > > > Thanks, > > > >> Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts") > >> Cc: stable@vger.kernel.org > >> Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com> > >> --- > >> 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 > >> > >
On Fri, 15 Sep 2023 23:16:13 +0900 Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote: > > Anyways, that requires a new patch to be created on top as this has hit > > the mainline as a fix already. > > Oops, I missed that. Yeah, I took that because it matched the original case, which was it being u64. -- Steve
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; } }
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. Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts") Cc: stable@vger.kernel.org Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com> --- kernel/trace/trace_events_synth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)