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

From: John Garry
Date: Tue Oct 16 2018 - 05:10:43 EST


On 15/10/2018 20:15, Arnaldo Carvalho de Melo wrote:
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 <john.garry@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-8x4n7o34yheigoxm1jibflm6@xxxxxxxxxxxxxx

Tested-by: John Garry <john.garry@xxxxxxxxxx>

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.


Much appreciated.

BTW, I think that we should add a fixes tag. But I'm not sure if this patch fixes the commit I bisected to earlier (bfd8f72c2778f5bd63d), or that same commit just exposed some latent bug.

Jirka, Andi, Do you know?

Thanks,
John

- Arnaldo

Thanks,
John

thanks,
jirka


Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
---
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@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

.



.