[PATCH v4 0/6] target/arm/kvm: Report PMU unavailability

Akihiko Odaki posted 6 patches 1 month, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240720-pmu-v4-0-2a2b28f6b08f@daynix.com
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Alexander Graf <agraf@csgraf.de>, Paolo Bonzini <pbonzini@redhat.com>
target/arm/cpu.c     |   5 +-
target/arm/hvf/hvf.c | 302 ++++++++++++++++++++++++++-------------------------
target/arm/kvm.c     |   7 +-
3 files changed, 159 insertions(+), 155 deletions(-)
[PATCH v4 0/6] target/arm/kvm: Report PMU unavailability
Posted by Akihiko Odaki 1 month, 2 weeks ago
target/arm/kvm.c checked PMU availability but claimed PMU is
available even if it is not. In fact, Asahi Linux supports KVM but lacks
PMU support. Only advertise PMU availability only when it is really
available.

Fixes: dc40d45ebd8e ("target/arm/kvm: Move kvm_arm_get_host_cpu_features and unexport")

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
Changes in v4:
- Split patch "target/arm/kvm: Fix PMU feature bit early" into
  "target/arm/kvm: Set PMU for host only when available" and
  "target/arm/kvm: Do not silently remove PMU".
- Changed to define PMU also for Armv7.
- Changed not to define PMU for M.
- Extracted patch "hvf: arm: Raise an exception for sysreg by default"
  from "hvf: arm: Properly disable PMU".
- Rebased.
- Link to v3: https://lore.kernel.org/r/20240716-pmu-v3-0-8c7c1858a227@daynix.com

Changes in v3:
- Dropped patch "target/arm: Do not allow setting 'pmu' for hvf".
- Dropped patch "target/arm: Allow setting 'pmu' only for host and max".
- Dropped patch "target/arm/kvm: Report PMU unavailability".
- Added patch "target/arm/kvm: Fix PMU feature bit early".
- Added patch "hvf: arm: Do not advance PC when raising an exception".
- Added patch "hvf: arm: Properly disable PMU".
- Changed to check for Armv8 before adding PMU property.
- Link to v2: https://lore.kernel.org/r/20240716-pmu-v2-0-f3e3e4b2d3d5@daynix.com

Changes in v2:
- Restricted writes to 'pmu' to host and max.
- Prohibited writes to 'pmu' for hvf.
- Link to v1: https://lore.kernel.org/r/20240629-pmu-v1-0-7269123b88a4@daynix.com

---
Akihiko Odaki (6):
      target/arm/kvm: Set PMU for host only when available
      target/arm/kvm: Do not silently remove PMU
      target/arm: Always add pmu property for Armv7-A/R+
      hvf: arm: Raise an exception for sysreg by default
      hvf: arm: Properly disable PMU
      hvf: arm: Do not advance PC when raising an exception

 target/arm/cpu.c     |   5 +-
 target/arm/hvf/hvf.c | 302 ++++++++++++++++++++++++++-------------------------
 target/arm/kvm.c     |   7 +-
 3 files changed, 159 insertions(+), 155 deletions(-)
---
base-commit: a87a7c449e532130d4fa8faa391ff7e1f04ed660
change-id: 20240629-pmu-ad5f67e2c5d0

Best regards,
-- 
Akihiko Odaki <akihiko.odaki@daynix.com>
Re: [PATCH v4 0/6] target/arm/kvm: Report PMU unavailability
Posted by Peter Maydell 1 month, 1 week ago
On Sat, 20 Jul 2024 at 10:31, Akihiko Odaki <akihiko.odaki@daynix.com> wrote:
>
> target/arm/kvm.c checked PMU availability but claimed PMU is
> available even if it is not. In fact, Asahi Linux supports KVM but lacks
> PMU support. Only advertise PMU availability only when it is really
> available.
>
> Fixes: dc40d45ebd8e ("target/arm/kvm: Move kvm_arm_get_host_cpu_features and unexport")
>
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>

> Akihiko Odaki (6):
>       target/arm/kvm: Set PMU for host only when available
>       target/arm/kvm: Do not silently remove PMU
>       target/arm: Always add pmu property for Armv7-A/R+
>       hvf: arm: Raise an exception for sysreg by default
>       hvf: arm: Properly disable PMU
>       hvf: arm: Do not advance PC when raising an exception

Thanks for this patchset; I've applied patches 1, 2, 4, 5 and 6
to target-arm.next, but I had comments about patch 3.
(Let me know if there's a dependency that 4-6 have on patch
3 that I've missed: but they look to me like they're
still OK to take without patch 3.)

-- PMM