* 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
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ 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] 5+ 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
3 siblings, 0 replies; 5+ 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] 5+ 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
3 siblings, 0 replies; 5+ 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] 5+ 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
3 siblings, 0 replies; 5+ 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] 5+ messages in thread