Under KVM, the guest PMU is backed by the host PMU (event set, PMCR.N, and PMCEID), which may not be portable across heterogeneous hosts.
Disable PMU support for named CPU models by clearing ARM_FEATURE_PMU in the named-model init path so arm_cpu_post_init() does not create the "pmu" property. Signed-off-by: Khushit Shah <[email protected]> --- target/arm/cpu-models.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/arm/cpu-models.c b/target/arm/cpu-models.c index fed3197186..153ee10ae6 100644 --- a/target/arm/cpu-models.c +++ b/target/arm/cpu-models.c @@ -159,6 +159,10 @@ static void arm_named_cpu_initfn(Object *obj) /* 1.b Properly set RES1 fields. */ reset_res1_fields(cpu); + /* Disable PMU for named CPU models. */ + unset_feature(&cpu->env, ARM_FEATURE_PMU); + cpu->has_pmu = false; + /* 2. Add sveNNNN and SYSREG_ properties */ aarch64_add_sve_properties(obj); aarch64_add_idregs_properties(obj); -- 2.52.0
