Re: [PATCH v2 4/5] target/arm: Always add pmu property

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2024/07/16 20:32, Peter Maydell wrote:
On Tue, 16 Jul 2024 at 09:28, Akihiko Odaki <akihiko.odaki@xxxxxxxxxx> wrote:

kvm-steal-time and sve properties are added for KVM even if the
corresponding features are not available. Always add pmu property too.

Signed-off-by: Akihiko Odaki <akihiko.odaki@xxxxxxxxxx>
---
  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 9e1d15701468..32508644aee7 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -1781,9 +1781,10 @@ 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);
      }

+    object_property_add_bool(obj, "pmu", arm_get_pmu, arm_set_pmu);
+
      /*
       * Allow user to turn off VFP and Neon support, but only for TCG --
       * KVM does not currently allow us to lie to the guest about its

Before we do this we need to do something to forbid setting
the pmu property to true on CPUs which don't have it. That is:

  * for CPUs which do have a PMU, we should default to present, and
    allow the user to turn it on and off with pmu=on/off
  * for CPUs which do not have a PMU, we should not let the user
    turn it on and off (either by not providing the property, or
    else by making the property-set method raise an error, or by
    having realize detect the discrepancy and raise an error)

I don't think there is any reason to prohibit adding a PMU to a CPU that doesn't have when you allow to remove one. For example, neoverse-v1 should always have PMU in the real world.

Perhaps it may make sense to prohibit adding a PMU when the CPU is not Armv8 as the PMU we emulate is apparently PMUv3, which is part of Armv8.

Regards,
Akihiko Odaki




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux