All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf inject: Set PERF_RECORD_MISC_BUILD_ID_SIZE
@ 2022-11-19  0:27 Namhyung Kim
  2022-11-21  8:45 ` Adrian Hunter
  0 siblings, 1 reply; 3+ messages in thread
From: Namhyung Kim @ 2022-11-19  0:27 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Jiri Olsa
  Cc: Ingo Molnar, Peter Zijlstra, LKML, Ian Rogers, Adrian Hunter,
	linux-perf-users

With perf inject -b, it synthesizes build-id event for DSOs.  But it
missed to set the size and resulted in having trailing zeros.

As perf record sets the size in write_build_id(), let's set the size
here as well.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/synthetic-events.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic-events.c
index cccd293b5312..0645795ff080 100644
--- a/tools/perf/util/synthetic-events.c
+++ b/tools/perf/util/synthetic-events.c
@@ -2218,8 +2218,9 @@ int perf_event__synthesize_build_id(struct perf_tool *tool, struct dso *pos, u16
 	len = pos->long_name_len + 1;
 	len = PERF_ALIGN(len, NAME_ALIGN);
 	memcpy(&ev.build_id.build_id, pos->bid.data, sizeof(pos->bid.data));
+	ev.build_id.size = pos->bid.size;
 	ev.build_id.header.type = PERF_RECORD_HEADER_BUILD_ID;
-	ev.build_id.header.misc = misc;
+	ev.build_id.header.misc = misc | PERF_RECORD_MISC_BUILD_ID_SIZE;
 	ev.build_id.pid = machine->pid;
 	ev.build_id.header.size = sizeof(ev.build_id) + len;
 	memcpy(&ev.build_id.filename, pos->long_name, pos->long_name_len);
-- 
2.38.1.584.g0f3c55d4c2-goog


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

* Re: [PATCH] perf inject: Set PERF_RECORD_MISC_BUILD_ID_SIZE
  2022-11-19  0:27 [PATCH] perf inject: Set PERF_RECORD_MISC_BUILD_ID_SIZE Namhyung Kim
@ 2022-11-21  8:45 ` Adrian Hunter
  2022-11-23 13:35   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Hunter @ 2022-11-21  8:45 UTC (permalink / raw)
  To: Namhyung Kim, Arnaldo Carvalho de Melo, Jiri Olsa
  Cc: Ingo Molnar, Peter Zijlstra, LKML, Ian Rogers, linux-perf-users

On 19/11/22 02:27, Namhyung Kim wrote:
> With perf inject -b, it synthesizes build-id event for DSOs.  But it
> missed to set the size and resulted in having trailing zeros.
> 
> As perf record sets the size in write_build_id(), let's set the size
> here as well.
> 
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
>  tools/perf/util/synthetic-events.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic-events.c
> index cccd293b5312..0645795ff080 100644
> --- a/tools/perf/util/synthetic-events.c
> +++ b/tools/perf/util/synthetic-events.c
> @@ -2218,8 +2218,9 @@ int perf_event__synthesize_build_id(struct perf_tool *tool, struct dso *pos, u16
>  	len = pos->long_name_len + 1;
>  	len = PERF_ALIGN(len, NAME_ALIGN);
>  	memcpy(&ev.build_id.build_id, pos->bid.data, sizeof(pos->bid.data));
> +	ev.build_id.size = pos->bid.size;
>  	ev.build_id.header.type = PERF_RECORD_HEADER_BUILD_ID;
> -	ev.build_id.header.misc = misc;
> +	ev.build_id.header.misc = misc | PERF_RECORD_MISC_BUILD_ID_SIZE;
>  	ev.build_id.pid = machine->pid;
>  	ev.build_id.header.size = sizeof(ev.build_id) + len;
>  	memcpy(&ev.build_id.filename, pos->long_name, pos->long_name_len);


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

* Re: [PATCH] perf inject: Set PERF_RECORD_MISC_BUILD_ID_SIZE
  2022-11-21  8:45 ` Adrian Hunter
@ 2022-11-23 13:35   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2022-11-23 13:35 UTC (permalink / raw)
  To: Adrian Hunter
  Cc: Namhyung Kim, Jiri Olsa, Ingo Molnar, Peter Zijlstra, LKML,
	Ian Rogers, linux-perf-users

Em Mon, Nov 21, 2022 at 10:45:14AM +0200, Adrian Hunter escreveu:
> On 19/11/22 02:27, Namhyung Kim wrote:
> > With perf inject -b, it synthesizes build-id event for DSOs.  But it
> > missed to set the size and resulted in having trailing zeros.
> > 
> > As perf record sets the size in write_build_id(), let's set the size
> > here as well.
> > 
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> 
> Acked-by: Adrian Hunter <adrian.hunter@intel.com>

Thanks, applied.

- Arnaldo

 
> > ---
> >  tools/perf/util/synthetic-events.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic-events.c
> > index cccd293b5312..0645795ff080 100644
> > --- a/tools/perf/util/synthetic-events.c
> > +++ b/tools/perf/util/synthetic-events.c
> > @@ -2218,8 +2218,9 @@ int perf_event__synthesize_build_id(struct perf_tool *tool, struct dso *pos, u16
> >  	len = pos->long_name_len + 1;
> >  	len = PERF_ALIGN(len, NAME_ALIGN);
> >  	memcpy(&ev.build_id.build_id, pos->bid.data, sizeof(pos->bid.data));
> > +	ev.build_id.size = pos->bid.size;
> >  	ev.build_id.header.type = PERF_RECORD_HEADER_BUILD_ID;
> > -	ev.build_id.header.misc = misc;
> > +	ev.build_id.header.misc = misc | PERF_RECORD_MISC_BUILD_ID_SIZE;
> >  	ev.build_id.pid = machine->pid;
> >  	ev.build_id.header.size = sizeof(ev.build_id) + len;
> >  	memcpy(&ev.build_id.filename, pos->long_name, pos->long_name_len);

-- 

- Arnaldo

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

end of thread, other threads:[~2022-11-23 13:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-19  0:27 [PATCH] perf inject: Set PERF_RECORD_MISC_BUILD_ID_SIZE Namhyung Kim
2022-11-21  8:45 ` Adrian Hunter
2022-11-23 13:35   ` 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.