Re: [PATCH v3 2/7] perf metric: Event "Compat" value supports matching multiple identifiers

From: John Garry
Date: Fri Jun 16 2023 - 07:43:35 EST


On 15/06/2023 03:18, Jing Zhang wrote:
Unit is the format of the event_source device name. We should match based on that as well as compat. I need to check the code again to understand how that is done... it has changed a good bit in 3 years.

This situation only happens on uncore metric. I happened to write wrong Unit, but the metric still matches.

I'm just double checking this now. I think any possible fix should be easy enough for current code but may be tricky for backport with lots of metric code changes.
I also have code to re-work sys event metric support such that we don't require "compat" or "Unit" values for a metric when the metric is described in terms of event aliases. That code is 2 years old, so may take a bit of time to rebase. I'll look to do that now.

Sounds good!

BTW, I am just looking at your cmn JSONs in this series, and we have something like this:

index 0000000..e70ac1a
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/arm/cmn/sys/metrics.json
@@ -0,0 +1,74 @@
+[
+ {
+ "MetricName": "slc_miss_rate",
+ "BriefDescription": "The system level cache miss rate include.",
+ "MetricGroup": "arm_cmn",
+ "MetricExpr": "hnf_cache_miss / hnf_slc_sf_cache_access",

So this expression uses event aliases hnf_cache_miss and hnf_slc_sf_cache_access - where are they defined in a JSON?

I could not see them. If they are not needed, then I may be missing something...

Thanks,
John