perf pmu-events: Don't lower case MetricExpr
authorIan Rogers <irogers@google.com>
Fri, 26 Nov 2021 07:13:05 +0000 (23:13 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 12 Jan 2022 18:02:48 +0000 (15:02 -0300)
This patch changes MetricExpr to be written out in the same case. This
enables events in metrics to use modifiers like 'G' which currently
yield parse errors when made lower case. To keep tests passing the
literal #smt_on is compared in a non-case sensitive way - #SMT_on is
present in at least SkylakeX metrics.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Garry <john.garry@huawei.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Clarke <pc@us.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lore.kernel.org/lkml/20211126071305.3733878-1-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/pmu-events/jevents.c
tools/perf/util/expr.c

index 2e7c4153875bc0a40af2d15bd949078c649b0bd0..1a57c3f81dd46c4f541b407d48d5260666639c1f 100644 (file)
@@ -672,8 +672,6 @@ static int json_events(const char *fn,
                                addfield(map, &je.metric_constraint, "", "", val);
                        } else if (json_streq(map, field, "MetricExpr")) {
                                addfield(map, &je.metric_expr, "", "", val);
-                               for (s = je.metric_expr; *s; s++)
-                                       *s = tolower(*s);
                        } else if (json_streq(map, field, "ArchStdEvent")) {
                                addfield(map, &arch_std, "", "", val);
                                for (s = arch_std; *s; s++)
index c94fb9bef919f5cb939c827bdf056b03beea8445..675f318ce7c1251b44eaef96bbec13d3bd5ec7c9 100644 (file)
@@ -407,7 +407,7 @@ double expr__get_literal(const char *literal)
        static struct cpu_topology *topology;
        double result = NAN;
 
-       if (!strcmp("#smt_on", literal)) {
+       if (!strcasecmp("#smt_on", literal)) {
                result = smt_on() > 0 ? 1.0 : 0.0;
                goto out;
        }