Re: [PATCH v1] perf parse-events: Fix for term values that are raw events

From: Namhyung Kim
Date: Thu Oct 12 2023 - 13:36:31 EST


On Thu, Oct 5, 2023 at 3:13 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
>
> On Wed, Sep 27, 2023 at 5:44 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
> >
> > Raw events can be strings like 'r0xead' but the 0x is optional so they
> > can also be 'read'. On IcelakeX uncore_imc_free_running has an event
> > called 'read' which may be programmed as:
> > ```
> > $ perf stat -e 'uncore_imc_free_running/event=read/' -a sleep 1
> > ```
> > However, the PE_RAW type isn't allowed on the right of a term, even
> > though in this case we just want to interpret it as a string. This
> > leads to the following error on IcelakeX:
> > ```
> > $ perf stat -e 'uncore_imc_free_running/event=read/' -a sleep 1
> > event syntax error: '..nning/event=read/'
> > \___ parser error
> > Run 'perf list' for a list of valid events
> >
> > Usage: perf stat [<options>] [<command>]
> >
> > -e, --event <event> event selector. use 'perf list' to list available events
> > ```
> > Fix this by allowing raw types on the right of terms and treat them as
> > strings, just as is already done for PE_LEGACY_CACHE. Make this
> > consistent by just entirely removing name_or_legacy and always using
> > name_or_raw that covers all three cases.
> >
> > Fixes: 6fd1e5191591 ("perf parse-events: Support PMUs for legacy cache events")
> > Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>

Applied to perf-tools-next, thanks!