Re: [RFC PATCH] perf pmu-events: Don't lower case MetricExpr

From: Ian Rogers
Date: Wed Jan 12 2022 - 12:23:07 EST


On Thu, Nov 25, 2021 at 11:13 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
>
> 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.

Ping.

Thanks,
Ian

> This patch is on top of:
> https://lore.kernel.org/lkml/20211124001231.3277836-1-irogers@xxxxxxxxxx/
>
> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/perf/pmu-events/jevents.c | 2 --
> tools/perf/util/expr.c | 2 +-
> 2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
> index 2e7c4153875b..1a57c3f81dd4 100644
> --- a/tools/perf/pmu-events/jevents.c
> +++ b/tools/perf/pmu-events/jevents.c
> @@ -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++)
> diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c
> index cdbab4f959fe..5cd6b9ff2489 100644
> --- a/tools/perf/util/expr.c
> +++ b/tools/perf/util/expr.c
> @@ -397,7 +397,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;
> }
> --
> 2.34.0.rc2.393.gf8c9666880-goog
>