Messages in this thread | | | From | Namhyung Kim <> | Date | Thu, 1 Sep 2022 23:52:56 -0700 | Subject | Re: [PATCH] perf: Ignore format attributes with an unknown perf_event_attr field |
| |
Hello,
On Thu, Sep 1, 2022 at 11:55 AM Rob Herring <robh@kernel.org> wrote: > > If the kernel exposes a new perf_event_attr field in a format attr, perf > will return an error stating the specified PMU can't be found. For > example, a format attr with 'config3:0-63' causes an error if config3 is > unknown to perf. This causes a compatibility issue between a newer > kernel and an older perf tool. > > The addition here makes any attr string up to the ':' ignored, but > still checks the 'bits' portion. > > Signed-off-by: Rob Herring <robh@kernel.org> > --- > This is the YACC mud I threw and seems to stick. Maybe there's a better > way to handle this. It doesn't seem like there's a way to do wildcards > (i.e. config.*) in YACC. > > This is needed for this series[1]. Unfortunately the best we do to avoid > the issue is applying this to stable. I think there's some time before > v8.7 h/w is deployed, too.
Maybe you could change the format_term rule to take an identifier instead of PP_CONFIG* directly and pass it to perf_pmu__new_format(). Then it could check the string and create an appropriate PERF_PMU_FORMAT_VALUE_* or ignore it according to the PERF_ATTR_SIZE_VER*.
Thanks, Namhyung
> > Rob > > [1] https://lore.kernel.org/all/20220825-arm-spe-v8-7-v1-0-c75b8d92e692@kernel.org/ > > tools/perf/util/pmu.y | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/tools/perf/util/pmu.y b/tools/perf/util/pmu.y > index bfd7e8509869..3096864ec9b9 100644 > --- a/tools/perf/util/pmu.y > +++ b/tools/perf/util/pmu.y > @@ -60,6 +60,9 @@ PP_CONFIG2 ':' bits > PERF_PMU_FORMAT_VALUE_CONFIG2, > $3)); > } > +| > +error ':' bits > +{} > > bits: > bits ',' bit_term > -- > 2.34.1 >
| |