]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
perf tools: Allow r0x<HEX> event syntax
authorJiri Olsa <jolsa@kernel.org>
Sat, 25 Jul 2020 12:19:58 +0000 (14:19 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 30 Jul 2020 10:01:48 +0000 (07:01 -0300)
Add support to specify raw event with 'r0<HEX>' syntax within pmu term
syntax like:

  -e cpu/r0xdead/

It will be used to specify raw events in cases where they conflict with
real pmu terms, like 'read', which is valid raw event syntax, but also a
possible pmu term name as reported by Jin Yao.

Reported-by: Jin Yao <yao.jin@linux.intel.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Link: http://lore.kernel.org/lkml/20200725121959.1181869-1-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Documentation/perf-list.txt
tools/perf/tests/parse-events.c
tools/perf/util/parse-events.l

index 376a50b3452d0cc19d5e00da86572c0abe776494..10ed539a8859c410b9b217672ac15014e6d70c50 100644 (file)
@@ -119,6 +119,7 @@ It's also possible to use pmu syntax:
 
  perf record -e r1a8 -a sleep 1
  perf record -e cpu/r1a8/ ...
+ perf record -e cpu/r0x1a8/ ...
 
 You should refer to the processor specific documentation for getting these
 details. Some of them are referenced in the SEE ALSO section below.
index 895188b63f9635b2c32ac2f241a9e14aa6aa3c92..5aaddcb0058a7afcbb19e66ddf84dd2fac42bbbf 100644 (file)
@@ -1766,6 +1766,11 @@ static struct evlist_test test__events_pmu[] = {
                .check = test__checkevent_raw_pmu,
                .id    = 4,
        },
+       {
+               .name  = "software/r0x1a/",
+               .check = test__checkevent_raw_pmu,
+               .id    = 4,
+       },
 };
 
 struct terms_test {
index 56912c9641f555266bc1fe1d756bfaf2e391ce4f..44c85fea5d002e20adc20400511bcf433fe03f94 100644 (file)
@@ -293,6 +293,7 @@ percore                     { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_PERCORE); }
 aux-output             { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT); }
 aux-sample-size                { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE); }
 r{num_raw_hex}         { return raw(yyscanner); }
+r0x{num_raw_hex}       { return raw(yyscanner); }
 ,                      { return ','; }
 "/"                    { BEGIN(INITIAL); return '/'; }
 {name_minus}           { return str(yyscanner, PE_NAME); }