OSDN Git Service

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 2e7c415..1a57c3f 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 c94fb9b..675f318 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;
        }