2020-05-18 20:02:26

by Paul A. Clarke

[permalink] [raw]
Subject: metric expressions including metrics?

I'm curious how hard it would be to define metrics using other metrics,
in the metrics definition files.

Currently, to my understanding, every metric definition must be an
expresssion based solely on arithmetic combinations of hardware events.

Some metrics are hierarchical in nature such that a higher-level metric
can be defined as an arithmetic expression of two other metrics, e.g.

cache_miss_cycles_per_instruction =
data_cache_miss_cycles_per_instruction +
instruction_cache_miss_cycles_per_instruction

This would need to be defined something like:
dcache_miss_cpi = "dcache_miss_cycles / instructions"
icache_miss_cpi = "icache_miss_cycles / instructions"
cache_miss_cpi = "(dcache_miss_cycles + icache_miss_cycles) / instructions"

Could the latter definition be simplified to:
cache_miss_cpi = "dcache_miss_cpi + icache_miss_cpi"

With multi-level caches and NUMA hierarchies, some of these higher-level
metrics can involve a lot of hardware events.

Given the recent activity in this area, I'm curious if this has been
considered and already on a wish/to-do list, or found onerous.

Regards,
Paul Clarke


2020-05-18 20:03:01

by Jiri Olsa

[permalink] [raw]
Subject: Re: metric expressions including metrics?

On Mon, May 18, 2020 at 02:12:42PM -0500, Paul A. Clarke wrote:
> I'm curious how hard it would be to define metrics using other metrics,
> in the metrics definition files.
>
> Currently, to my understanding, every metric definition must be an
> expresssion based solely on arithmetic combinations of hardware events.
>
> Some metrics are hierarchical in nature such that a higher-level metric
> can be defined as an arithmetic expression of two other metrics, e.g.
>
> cache_miss_cycles_per_instruction =
> data_cache_miss_cycles_per_instruction +
> instruction_cache_miss_cycles_per_instruction
>
> This would need to be defined something like:
> dcache_miss_cpi = "dcache_miss_cycles / instructions"
> icache_miss_cpi = "icache_miss_cycles / instructions"
> cache_miss_cpi = "(dcache_miss_cycles + icache_miss_cycles) / instructions"
>
> Could the latter definition be simplified to:
> cache_miss_cpi = "dcache_miss_cpi + icache_miss_cpi"
>
> With multi-level caches and NUMA hierarchies, some of these higher-level
> metrics can involve a lot of hardware events.
>
> Given the recent activity in this area, I'm curious if this has been
> considered and already on a wish/to-do list, or found onerous.

hi,
actually we were discussing this with Ian and Stephane and I plan on
checking on that.. should be doable, I'll keep you in the loop

jirka

>
> Regards,
> Paul Clarke
>

2020-05-18 20:03:44

by Stephane Eranian

[permalink] [raw]
Subject: Re: metric expressions including metrics?

On Mon, May 18, 2020 at 12:21 PM Jiri Olsa <[email protected]> wrote:
>
> On Mon, May 18, 2020 at 02:12:42PM -0500, Paul A. Clarke wrote:
> > I'm curious how hard it would be to define metrics using other metrics,
> > in the metrics definition files.
> >
> > Currently, to my understanding, every metric definition must be an
> > expresssion based solely on arithmetic combinations of hardware events.
> >
> > Some metrics are hierarchical in nature such that a higher-level metric
> > can be defined as an arithmetic expression of two other metrics, e.g.
> >
> > cache_miss_cycles_per_instruction =
> > data_cache_miss_cycles_per_instruction +
> > instruction_cache_miss_cycles_per_instruction
> >
> > This would need to be defined something like:
> > dcache_miss_cpi = "dcache_miss_cycles / instructions"
> > icache_miss_cpi = "icache_miss_cycles / instructions"
> > cache_miss_cpi = "(dcache_miss_cycles + icache_miss_cycles) / instructions"
> >
> > Could the latter definition be simplified to:
> > cache_miss_cpi = "dcache_miss_cpi + icache_miss_cpi"
> >
> > With multi-level caches and NUMA hierarchies, some of these higher-level
> > metrics can involve a lot of hardware events.
> >
> > Given the recent activity in this area, I'm curious if this has been
> > considered and already on a wish/to-do list, or found onerous.
>
> hi,
> actually we were discussing this with Ian and Stephane and I plan on
> checking on that.. should be doable, I'll keep you in the loop
>
Yes, this is needed to minimize the number of events needed to compute
metrics groups.
Then across all metrics groups, event duplicates must be eliminated
whenever possible, except when explicit event grouping is required.

>
> jirk
>
> a
>
> >
> > Regards,
> > Paul Clarke
> >
>