metric expressions including metrics?

From: Paul A. Clarke
Date: Mon May 18 2020 - 15:14:38 EST


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