Re: [PATCH v2 11/27] perf parse-events: Support hardware events inside PMU

From: Jin, Yao
Date: Tue Mar 16 2021 - 22:13:03 EST

On 3/16/2021 10:04 PM, Jiri Olsa wrote:
On Tue, Mar 16, 2021 at 09:49:42AM +0800, Jin, Yao wrote:


Performance counter stats for 'system wide':

136,655,302 cpu_core/branch-instructions/

1.003171561 seconds time elapsed

So we need special rules for both cycles and branches.

The worse thing is, we also need to process the hardware cache events.

# ./perf stat -e cpu_core/LLC-loads/
event syntax error: 'cpu_core/LLC-loads/'
\___ unknown term 'LLC-loads' for pmu 'cpu_core'

valid terms: event,pc,edge,offcore_rsp,ldlat,inv,umask,frontend,cmask,config,config1,config2,name,period,percore

Initial error:
event syntax error: 'cpu_core/LLC-loads/'
\___ unknown term 'LLC-loads' for pmu 'cpu_core'

If we use special rules for establishing all event mapping, that looks too much. :(

hmmm but wait, currently we do not support events like this:


the pmu style accepts only 'events' or 'format' terms within //

we made hw events like 'cycles','instructions','branches' special
to be used without the pmu

so why do we need to support cpu_code/cycles/ ?


Actually we have to support pmu style event for hybrid platform.

User may want to enable the events from specified pmus and also with flexible grouping.

For example,

perf stat -e '{cpu_core/cycles/,cpu_core/instructions/}' -e '{cpu_atom/cycles/,cpu_atom/instructions/}'

This usage is common and reasonable. So I think we may need to support pmu style events.

Jin Yao