linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] perf: Fix missing raw data on tracepoint events
@ 2022-10-12 14:38 James Clark
  2022-10-12 16:52 ` Namhyung Kim
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: James Clark @ 2022-10-12 14:38 UTC (permalink / raw)
  To: linux-perf-users, peterz, namhyung
  Cc: linux-kernel, James Clark, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa

Since commit 838d9bb62d13 ("perf: Use sample_flags for raw_data")
raw data is not being output on tracepoints due to the PERF_SAMPLE_RAW
field not being set. Fix this by setting it for tracepoint events.

This fixes the following test failure:

  perf test "sched_switch" -vvv

   35: Track with sched_switch
  --- start ---
  test child forked, pid 1828
  ...
  Using CPUID 0x00000000410fd400
  sched_switch: cpu: 2 prev_tid -14687 next_tid 0
  sched_switch: cpu: 2 prev_tid -14687 next_tid 0
  Missing sched_switch events
  4613 events recorded
  test child finished with -1
  ---- end ----
  Track with sched_switch: FAILED!

Fixes: 838d9bb62d13 ("perf: Use sample_flags for raw_data")
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: James Clark <james.clark@arm.com>
---
 kernel/events/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index b981b879bcd8..824c23830272 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9759,6 +9759,7 @@ void perf_tp_event(u16 event_type, u64 count, void *record, int entry_size,
 
 	perf_sample_data_init(&data, 0, 0);
 	data.raw = &raw;
+	data.sample_flags |= PERF_SAMPLE_RAW;
 
 	perf_trace_buf_update(record, event_type);
 
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf: Fix missing raw data on tracepoint events
  2022-10-12 14:38 [PATCH] perf: Fix missing raw data on tracepoint events James Clark
@ 2022-10-12 16:52 ` Namhyung Kim
  2022-10-17 23:38 ` SeongJae Park
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Namhyung Kim @ 2022-10-12 16:52 UTC (permalink / raw)
  To: James Clark
  Cc: linux-perf-users, Peter Zijlstra, linux-kernel, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa

On Wed, Oct 12, 2022 at 7:39 AM James Clark <james.clark@arm.com> wrote:
>
> Since commit 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> raw data is not being output on tracepoints due to the PERF_SAMPLE_RAW
> field not being set. Fix this by setting it for tracepoint events.
>
> This fixes the following test failure:
>
>   perf test "sched_switch" -vvv
>
>    35: Track with sched_switch
>   --- start ---
>   test child forked, pid 1828
>   ...
>   Using CPUID 0x00000000410fd400
>   sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>   sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>   Missing sched_switch events
>   4613 events recorded
>   test child finished with -1
>   ---- end ----
>   Track with sched_switch: FAILED!
>
> Fixes: 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
> Signed-off-by: James Clark <james.clark@arm.com>

Ouch.. thanks for the fix.

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung


> ---
>  kernel/events/core.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index b981b879bcd8..824c23830272 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -9759,6 +9759,7 @@ void perf_tp_event(u16 event_type, u64 count, void *record, int entry_size,
>
>         perf_sample_data_init(&data, 0, 0);
>         data.raw = &raw;
> +       data.sample_flags |= PERF_SAMPLE_RAW;
>
>         perf_trace_buf_update(record, event_type);
>
> --
> 2.28.0
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf: Fix missing raw data on tracepoint events
  2022-10-12 14:38 [PATCH] perf: Fix missing raw data on tracepoint events James Clark
  2022-10-12 16:52 ` Namhyung Kim
@ 2022-10-17 23:38 ` SeongJae Park
  2022-10-18 18:30 ` Athira Rajeev
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: SeongJae Park @ 2022-10-17 23:38 UTC (permalink / raw)
  To: James Clark
  Cc: sj, linux-perf-users, peterz, namhyung, linux-kernel,
	Ingo Molnar, Arnaldo Carvalho de Melo, Mark Rutland,
	Alexander Shishkin, Jiri Olsa

On Wed, 12 Oct 2022 15:38:57 +0100 James Clark <james.clark@arm.com> wrote:

> Since commit 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> raw data is not being output on tracepoints due to the PERF_SAMPLE_RAW
> field not being set. Fix this by setting it for tracepoint events.

I was also getting similar issue[1], and confirmed that this fixes it.  Thank
you for the fix!  Also, thank you for pointing me to this patch, Namhyung!

> 
> This fixes the following test failure:
> 
>   perf test "sched_switch" -vvv
> 
>    35: Track with sched_switch
>   --- start ---
>   test child forked, pid 1828
>   ...
>   Using CPUID 0x00000000410fd400
>   sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>   sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>   Missing sched_switch events
>   4613 events recorded
>   test child finished with -1
>   ---- end ----
>   Track with sched_switch: FAILED!
> 
> Fixes: 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
> Signed-off-by: James Clark <james.clark@arm.com>

Tested-by: SeongJae Park <sj@kernel.org>


[1] https://lore.kernel.org/bpf/20221017192744.1403-1-sj@kernel.org/

Thanks,
SJ

> ---
>  kernel/events/core.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index b981b879bcd8..824c23830272 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -9759,6 +9759,7 @@ void perf_tp_event(u16 event_type, u64 count, void *record, int entry_size,
>  
>  	perf_sample_data_init(&data, 0, 0);
>  	data.raw = &raw;
> +	data.sample_flags |= PERF_SAMPLE_RAW;
>  
>  	perf_trace_buf_update(record, event_type);
>  
> -- 
> 2.28.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf: Fix missing raw data on tracepoint events
  2022-10-12 14:38 [PATCH] perf: Fix missing raw data on tracepoint events James Clark
  2022-10-12 16:52 ` Namhyung Kim
  2022-10-17 23:38 ` SeongJae Park
@ 2022-10-18 18:30 ` Athira Rajeev
  2022-10-18 20:23 ` Peter Zijlstra
  2022-10-28  6:41 ` [tip: perf/urgent] " tip-bot2 for James Clark
  4 siblings, 0 replies; 6+ messages in thread
From: Athira Rajeev @ 2022-10-18 18:30 UTC (permalink / raw)
  To: James Clark
  Cc: linux-perf-users, Peter Zijlstra, Namhyung Kim, linux-kernel,
	Ingo Molnar, Arnaldo Carvalho de Melo, Mark Rutland,
	Alexander Shishkin, Jiri Olsa



> On 12-Oct-2022, at 8:08 PM, James Clark <james.clark@arm.com> wrote:
> 
> Since commit 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> raw data is not being output on tracepoints due to the PERF_SAMPLE_RAW
> field not being set. Fix this by setting it for tracepoint events.
> 
> This fixes the following test failure:
> 
>  perf test "sched_switch" -vvv
> 
>   35: Track with sched_switch
>  --- start ---
>  test child forked, pid 1828
>  ...
>  Using CPUID 0x00000000410fd400
>  sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>  sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>  Missing sched_switch events
>  4613 events recorded
>  test child finished with -1
>  ---- end ----
>  Track with sched_switch: FAILED!
> 
> Fixes: 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
> Signed-off-by: James Clark <james.clark@arm.com>

Hi James, 

Thanks for the fix. I was getting similar issue with “perf trace” and it works with this fix.

Tested-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>


> ---
> kernel/events/core.c | 1 +
> 1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index b981b879bcd8..824c23830272 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -9759,6 +9759,7 @@ void perf_tp_event(u16 event_type, u64 count, void *record, int entry_size,
> 
> 	perf_sample_data_init(&data, 0, 0);
> 	data.raw = &raw;
> +	data.sample_flags |= PERF_SAMPLE_RAW;
> 
> 	perf_trace_buf_update(record, event_type);
> 
> -- 
> 2.28.0
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf: Fix missing raw data on tracepoint events
  2022-10-12 14:38 [PATCH] perf: Fix missing raw data on tracepoint events James Clark
                   ` (2 preceding siblings ...)
  2022-10-18 18:30 ` Athira Rajeev
@ 2022-10-18 20:23 ` Peter Zijlstra
  2022-10-28  6:41 ` [tip: perf/urgent] " tip-bot2 for James Clark
  4 siblings, 0 replies; 6+ messages in thread
From: Peter Zijlstra @ 2022-10-18 20:23 UTC (permalink / raw)
  To: James Clark
  Cc: linux-perf-users, namhyung, linux-kernel, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa

On Wed, Oct 12, 2022 at 03:38:57PM +0100, James Clark wrote:
> Since commit 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> raw data is not being output on tracepoints due to the PERF_SAMPLE_RAW
> field not being set. Fix this by setting it for tracepoint events.
> 
> This fixes the following test failure:
> 
>   perf test "sched_switch" -vvv
> 
>    35: Track with sched_switch
>   --- start ---
>   test child forked, pid 1828
>   ...
>   Using CPUID 0x00000000410fd400
>   sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>   sched_switch: cpu: 2 prev_tid -14687 next_tid 0
>   Missing sched_switch events
>   4613 events recorded
>   test child finished with -1
>   ---- end ----
>   Track with sched_switch: FAILED!
> 
> Fixes: 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
> Signed-off-by: James Clark <james.clark@arm.com>

Thanks!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [tip: perf/urgent] perf: Fix missing raw data on tracepoint events
  2022-10-12 14:38 [PATCH] perf: Fix missing raw data on tracepoint events James Clark
                   ` (3 preceding siblings ...)
  2022-10-18 20:23 ` Peter Zijlstra
@ 2022-10-28  6:41 ` tip-bot2 for James Clark
  4 siblings, 0 replies; 6+ messages in thread
From: tip-bot2 for James Clark @ 2022-10-28  6:41 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: James Clark, Peter Zijlstra (Intel),
	Namhyung Kim, SeongJae Park, Athira Rajeev, x86, linux-kernel

The following commit has been merged into the perf/urgent branch of tip:

Commit-ID:     4b66ff46f2e18b1d32e18c881799ef911606f3be
Gitweb:        https://git.kernel.org/tip/4b66ff46f2e18b1d32e18c881799ef911606f3be
Author:        James Clark <james.clark@arm.com>
AuthorDate:    Wed, 12 Oct 2022 15:38:57 +01:00
Committer:     Peter Zijlstra <peterz@infradead.org>
CommitterDate: Thu, 27 Oct 2022 10:27:30 +02:00

perf: Fix missing raw data on tracepoint events

Since commit 838d9bb62d13 ("perf: Use sample_flags for raw_data")
raw data is not being output on tracepoints due to the PERF_SAMPLE_RAW
field not being set. Fix this by setting it for tracepoint events.

This fixes the following test failure:

  perf test "sched_switch" -vvv

   35: Track with sched_switch
  --- start ---
  test child forked, pid 1828
  ...
  Using CPUID 0x00000000410fd400
  sched_switch: cpu: 2 prev_tid -14687 next_tid 0
  sched_switch: cpu: 2 prev_tid -14687 next_tid 0
  Missing sched_switch events
  4613 events recorded
  test child finished with -1
  ---- end ----
  Track with sched_switch: FAILED!

Fixes: 838d9bb62d13 ("perf: Use sample_flags for raw_data")
Signed-off-by: James Clark <james.clark@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: SeongJae Park <sj@kernel.org>
Tested-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Link: https://lore.kernel.org/r/20221012143857.48198-1-james.clark@arm.com
---
 kernel/events/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index 01933db..4ec3717 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9846,6 +9846,7 @@ void perf_tp_event(u16 event_type, u64 count, void *record, int entry_size,
 
 	perf_sample_data_init(&data, 0, 0);
 	data.raw = &raw;
+	data.sample_flags |= PERF_SAMPLE_RAW;
 
 	perf_trace_buf_update(record, event_type);
 

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-10-28  6:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-12 14:38 [PATCH] perf: Fix missing raw data on tracepoint events James Clark
2022-10-12 16:52 ` Namhyung Kim
2022-10-17 23:38 ` SeongJae Park
2022-10-18 18:30 ` Athira Rajeev
2022-10-18 20:23 ` Peter Zijlstra
2022-10-28  6:41 ` [tip: perf/urgent] " tip-bot2 for James Clark

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).