Subject: [PATCH] perf tools: Store ids for events with their own cpus perf_event__synthesize_event_update_cpus

From: [email-masked] (Arnaldo Carvalho de Melo)
Date: Mon, 15 Oct 2018 16:15:02 -0300

Em Fri, Oct 12, 2018 at 02:25:49PM +0100, John Garry escreveu:
> On 09/10/2018 11:00, Jiri Olsa wrote:
> > On Thu, Oct 04, 2018 at 10:20:39AM +0100, John Garry wrote:
> > 
> > SNIP
> > 
> > > > We synthesize an update event that needs to touch the evsel
> > > > id array, which is not defined at that time. Fixing this by
> > > > forcing the id allocation for events with theeir own cpus.
> 
> /s/theeir/their/
> 
> > > > 
> > > > Reported-by: John Garry <[email-masked]>
> > > > Link: http://lkml.kernel.org/n/tip-8x4n7o34yheigoxm1jibflm6 at git.kernel.org
> > > 
> > > Tested-by: John Garry <[email-masked]>
> > > 
> > > In terms of adding to stable, LT v4.14 is not affected, but 4.18.x is.
> > > 
> > > Thanks,
> > > John
> > 
> > Arnaldo, could you please pick up this one
> > 
> 
> Just a friendly reminder on this patch.
> 
> How about re-send with an updated commit message also?

I'll fix up the commit message and apply, thanks.

- Arnaldo
 
> Thanks,
> John
> 
> > thanks,
> > jirka
> > 
> > > 
> > > > Signed-off-by: Jiri Olsa <[email-masked]>
> > > > ---
> > > >  tools/perf/builtin-report.c | 1 +
> > > >  tools/perf/util/evsel.c     | 3 +++
> > > >  2 files changed, 4 insertions(+)
> > > > 
> > > > diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> > > > index c0703979c51d..257c9c18cb7e 100644
> > > > --- a/tools/perf/builtin-report.c
> > > > +++ b/tools/perf/builtin-report.c
> > > > @@ -980,6 +980,7 @@ int cmd_report(int argc, const char **argv)
> > > >  			.id_index	 = perf_event__process_id_index,
> > > >  			.auxtrace_info	 = perf_event__process_auxtrace_info,
> > > >  			.auxtrace	 = perf_event__process_auxtrace,
> > > > +			.event_update	 = perf_event__process_event_update,
> > > >  			.feature	 = process_feature_event,
> > > >  			.ordered_events	 = true,
> > > >  			.ordering_requires_timestamps = true,
> > > > diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> > > > index ac6cfb8b085e..7a0d5fbaf3c1 100644
> > > > --- a/tools/perf/util/evsel.c
> > > > +++ b/tools/perf/util/evsel.c
> > > > @@ -1088,6 +1088,9 @@ void perf_evsel__config(struct perf_evsel *evsel, struct record_opts *opts,
> > > >  		attr->exclude_user   = 1;
> > > >  	}
> > > > 
> > > > +	if (evsel->own_cpus)
> > > > +		evsel->attr.read_format |= PERF_FORMAT_ID;
> > > > +
> > > >  	/*
> > > >  	 * Apply event specific term settings,
> > > >  	 * it overloads any global configuration.
> > > > 
> > > 
> > > 
> > 
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> > 
> > .
> > 
>