Re: [RFC PATCH] perf pmu-events: Don't lower case MetricExpr
From: Arnaldo Carvalho de Melo
Date: Wed Jan 12 2022 - 12:45:19 EST
Em Wed, Jan 12, 2022 at 09:22:51AM -0800, Ian Rogers escreveu:
> 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.
I tried applying 20211124001231.3277836-1-irogers@xxxxxxxxxx on top of
your perf_cpu series, it failed, will check.
BTW, I got the two other patches in that series:
⬢[acme@toolbox perf]$ git log --oneline -2
6dd8646939a770e4 (HEAD -> perf/core) perf tools: Probe non-deprecated sysfs path 1st
0ce05781f4905fcf perf tools: Fix SMT fallback with large core counts
⬢[acme@toolbox perf]$
- Arnaldo
> 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
> >
--
- Arnaldo