All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf: Fix swapping of cpu_map and stat_config records
@ 2021-05-06 13:11 Dmitry Koshelev
  2021-05-06 13:32 ` Jiri Olsa
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry Koshelev @ 2021-05-06 13:11 UTC (permalink / raw)
  Cc: Dmitry Koshelev, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, Adrian Hunter, Kan Liang, Leo Yan,
	linux-perf-users, linux-kernel

'data' field in perf_record_cpu_map_data struct is 16-bit
wide and so should be swapped using bswap_16().

'nr' field in perf_record_stat_config struct should be
swapped before being used for size calculation.

Signed-off-by: Dmitry Koshelev <karaghiozis@gmail.com>
---
 tools/perf/util/session.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index a12cf4f0e97a..106b3d60881a 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -904,7 +904,7 @@ static void perf_event__cpu_map_swap(union perf_event *event,
 	struct perf_record_record_cpu_map *mask;
 	unsigned i;
 
-	data->type = bswap_64(data->type);
+	data->type = bswap_16(data->type);
 
 	switch (data->type) {
 	case PERF_CPU_MAP__CPUS:
@@ -937,7 +937,7 @@ static void perf_event__stat_config_swap(union perf_event *event,
 {
 	u64 size;
 
-	size  = event->stat_config.nr * sizeof(event->stat_config.data[0]);
+	size  = bswap_64(event->stat_config.nr) * sizeof(event->stat_config.data[0]);
 	size += 1; /* nr item itself */
 	mem_bswap_64(&event->stat_config.nr, size);
 }
-- 
2.25.1


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

* Re: [PATCH] perf: Fix swapping of cpu_map and stat_config records
  2021-05-06 13:11 [PATCH] perf: Fix swapping of cpu_map and stat_config records Dmitry Koshelev
@ 2021-05-06 13:32 ` Jiri Olsa
  2021-05-08 15:15   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Jiri Olsa @ 2021-05-06 13:32 UTC (permalink / raw)
  To: Dmitry Koshelev
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, Adrian Hunter,
	Kan Liang, Leo Yan, linux-perf-users, linux-kernel

On Thu, May 06, 2021 at 01:11:49PM +0000, Dmitry Koshelev wrote:
> 'data' field in perf_record_cpu_map_data struct is 16-bit
> wide and so should be swapped using bswap_16().
> 
> 'nr' field in perf_record_stat_config struct should be
> swapped before being used for size calculation.
> 
> Signed-off-by: Dmitry Koshelev <karaghiozis@gmail.com>

Acked-by: Jiri Olsa <jolsa@redhat.com>

thanks,
jirka

> ---
>  tools/perf/util/session.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> index a12cf4f0e97a..106b3d60881a 100644
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -904,7 +904,7 @@ static void perf_event__cpu_map_swap(union perf_event *event,
>  	struct perf_record_record_cpu_map *mask;
>  	unsigned i;
>  
> -	data->type = bswap_64(data->type);
> +	data->type = bswap_16(data->type);
>  
>  	switch (data->type) {
>  	case PERF_CPU_MAP__CPUS:
> @@ -937,7 +937,7 @@ static void perf_event__stat_config_swap(union perf_event *event,
>  {
>  	u64 size;
>  
> -	size  = event->stat_config.nr * sizeof(event->stat_config.data[0]);
> +	size  = bswap_64(event->stat_config.nr) * sizeof(event->stat_config.data[0]);
>  	size += 1; /* nr item itself */
>  	mem_bswap_64(&event->stat_config.nr, size);
>  }
> -- 
> 2.25.1
> 


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

* Re: [PATCH] perf: Fix swapping of cpu_map and stat_config records
  2021-05-06 13:32 ` Jiri Olsa
@ 2021-05-08 15:15   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-05-08 15:15 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Dmitry Koshelev, Peter Zijlstra, Ingo Molnar, Mark Rutland,
	Alexander Shishkin, Namhyung Kim, Adrian Hunter, Kan Liang,
	Leo Yan, linux-perf-users, linux-kernel

Em Thu, May 06, 2021 at 03:32:10PM +0200, Jiri Olsa escreveu:
> On Thu, May 06, 2021 at 01:11:49PM +0000, Dmitry Koshelev wrote:
> > 'data' field in perf_record_cpu_map_data struct is 16-bit
> > wide and so should be swapped using bswap_16().
> > 
> > 'nr' field in perf_record_stat_config struct should be
> > swapped before being used for size calculation.
> > 
> > Signed-off-by: Dmitry Koshelev <karaghiozis@gmail.com>
> 
> Acked-by: Jiri Olsa <jolsa@redhat.com>

Thanks, applied.

- Arnaldo

 
> thanks,
> jirka
> 
> > ---
> >  tools/perf/util/session.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> > index a12cf4f0e97a..106b3d60881a 100644
> > --- a/tools/perf/util/session.c
> > +++ b/tools/perf/util/session.c
> > @@ -904,7 +904,7 @@ static void perf_event__cpu_map_swap(union perf_event *event,
> >  	struct perf_record_record_cpu_map *mask;
> >  	unsigned i;
> >  
> > -	data->type = bswap_64(data->type);
> > +	data->type = bswap_16(data->type);
> >  
> >  	switch (data->type) {
> >  	case PERF_CPU_MAP__CPUS:
> > @@ -937,7 +937,7 @@ static void perf_event__stat_config_swap(union perf_event *event,
> >  {
> >  	u64 size;
> >  
> > -	size  = event->stat_config.nr * sizeof(event->stat_config.data[0]);
> > +	size  = bswap_64(event->stat_config.nr) * sizeof(event->stat_config.data[0]);
> >  	size += 1; /* nr item itself */
> >  	mem_bswap_64(&event->stat_config.nr, size);
> >  }
> > -- 
> > 2.25.1
> > 
> 

-- 

- Arnaldo

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

end of thread, other threads:[~2021-05-08 15:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-06 13:11 [PATCH] perf: Fix swapping of cpu_map and stat_config records Dmitry Koshelev
2021-05-06 13:32 ` Jiri Olsa
2021-05-08 15:15   ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.