Hi Kan,
[...]
diff --git a/tools/perf/util/pmu.h b/tools/perf/util/pmu.h
index 541889fa9f9c..4b45fd8da5a3 100644
--- a/tools/perf/util/pmu.h
+++ b/tools/perf/util/pmu.h
@@ -46,6 +46,8 @@ struct perf_pmu {
struct perf_cpu_map *cpus;
struct list_head format; /* HEAD struct perf_pmu_format -> list */
struct list_head aliases; /* HEAD struct perf_pmu_alias -> list */
+ bool caps_initialized;
+ u32 nr_caps;
If they are just used for the cache purpose, I don't think we need to add the variables in the struct perf_pmu.
A static variable should be good enough. See sysctl__nmi_watchdog_enabled().
These fields are per pmu. Static variable won't help :) And they are
used in subsequent patches as well.