Message ID | 20240716-pmu-v3-3-8c7c1858a227@daynix.com |
---|---|
State | New |
Headers | show |
Series | target/arm/kvm: Report PMU unavailability | expand |
On Tue, 16 Jul 2024 at 13:50, Akihiko Odaki <akihiko.odaki@daynix.com> wrote: > > kvm-steal-time and sve properties are added for KVM even if the > corresponding features are not available. Always add pmu property for > Armv8. Note that the property is added only for Armv8 as QEMU emulates > PMUv3, which is part of Armv8. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> > --- > target/arm/cpu.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/target/arm/cpu.c b/target/arm/cpu.c > index 14d4eca12740..64038e26b2a9 100644 > --- a/target/arm/cpu.c > +++ b/target/arm/cpu.c > @@ -1744,6 +1744,8 @@ void arm_cpu_post_init(Object *obj) > } > > if (arm_feature(&cpu->env, ARM_FEATURE_V8)) { > + object_property_add_bool(obj, "pmu", arm_get_pmu, arm_set_pmu); > + > object_property_add_uint64_ptr(obj, "rvbar", > &cpu->rvbar_prop, > OBJ_PROP_FLAG_READWRITE); > @@ -1770,7 +1772,6 @@ void arm_cpu_post_init(Object *obj) > > if (arm_feature(&cpu->env, ARM_FEATURE_PMU)) { > cpu->has_pmu = true; > - object_property_add_bool(obj, "pmu", arm_get_pmu, arm_set_pmu); > } This regresses the ability to disable the PMU emulation on CPUs like "cortex-a8", which are not v8 but still set ARM_FEATURE_PMU. thanks -- PMM
diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 14d4eca12740..64038e26b2a9 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1744,6 +1744,8 @@ void arm_cpu_post_init(Object *obj) } if (arm_feature(&cpu->env, ARM_FEATURE_V8)) { + object_property_add_bool(obj, "pmu", arm_get_pmu, arm_set_pmu); + object_property_add_uint64_ptr(obj, "rvbar", &cpu->rvbar_prop, OBJ_PROP_FLAG_READWRITE); @@ -1770,7 +1772,6 @@ void arm_cpu_post_init(Object *obj) if (arm_feature(&cpu->env, ARM_FEATURE_PMU)) { cpu->has_pmu = true; - object_property_add_bool(obj, "pmu", arm_get_pmu, arm_set_pmu); } /*
kvm-steal-time and sve properties are added for KVM even if the corresponding features are not available. Always add pmu property for Armv8. Note that the property is added only for Armv8 as QEMU emulates PMUv3, which is part of Armv8. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- target/arm/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)