• R
    perf: Skip and warn on unknown format 'configN' attrs · e552b7be
    Rob Herring 提交于
    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 as config3 is
    unknown to perf. This causes a compatibility issue between a newer
    kernel with older perf tool.
    
    Before this change with a kernel adding 'config3' I get:
    
      $ perf record -e arm_spe// -- true
      event syntax error: 'arm_spe//'
                           \___ Cannot find PMU `arm_spe'. Missing kernel support?
      Run 'perf list' for a list of valid events
    
       Usage: perf record [<options>] [<command>]
          or: perf record [<options>] -- <command> [<options>]
    
          -e, --event <event>   event selector. use 'perf list' to list
      available events
    
    After this change, I get:
    
      $ perf record -e arm_spe// -- true
      WARNING: 'arm_spe_0' format 'inv_event_filter' requires 'perf_event_attr::config3' which is not supported by this version of perf!
      [ perf record: Woken up 2 times to write data ]
      [ perf record: Captured and wrote 0.091 MB perf.data ]
    
    To support unknown configN formats, rework the YACC implementation to
    pass any config[0-9]+ format to perf_pmu__new_format() to handle with a
    warning.
    Reviewed-by: NNamhyung Kim <namhyung@kernel.org>
    Signed-off-by: NRob Herring <robh@kernel.org>
    Tested-by: NLeo Yan <leo.yan@linaro.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220914-arm-perf-tool-spe1-2-v2-v4-1-83c098e6212e@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    e552b7be
pmu.l 507 字节