[tip: perf/core] perf evlist: Allow multiple read formats

From: tip-bot2 for Adrian Hunter
Date: Wed Apr 22 2020 - 08:23:07 EST


The following commit has been merged into the perf/core branch of tip:

Commit-ID: 94d3820f2e18d3c88f833baec8d6ad5b3489fa59
Gitweb: https://git.kernel.org/tip/94d3820f2e18d3c88f833baec8d6ad5b3489fa59
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
AuthorDate: Wed, 01 Apr 2020 13:16:12 +03:00
Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
CommitterDate: Sat, 18 Apr 2020 09:05:00 -03:00

perf evlist: Allow multiple read formats

Tools find the correct evsel, and therefore read format, using the event
ID, so it isn't necessary for all read formats to be the same. In the
case of leader-sampling of AUX area events, dummy tracking events will
have a different read format, so relax the validation to become a debug
message only.

Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link: http://lore.kernel.org/lkml/20200401101613.6201-16-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/perf/util/evlist.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 1548237..82d9f9b 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -1131,8 +1131,10 @@ bool perf_evlist__valid_read_format(struct evlist *evlist)
u64 sample_type = first->core.attr.sample_type;

evlist__for_each_entry(evlist, pos) {
- if (read_format != pos->core.attr.read_format)
- return false;
+ if (read_format != pos->core.attr.read_format) {
+ pr_debug("Read format differs %#" PRIx64 " vs %#" PRIx64 "\n",
+ read_format, (u64)pos->core.attr.read_format);
+ }
}

/* PERF_SAMPLE_READ imples PERF_FORMAT_ID. */