KVM: arm64: PMU: Always advertise the CHAIN event
authorMarc Zyngier <maz@kernel.org>
Sun, 13 Nov 2022 16:38:19 +0000 (16:38 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 17 Nov 2022 15:39:51 +0000 (15:39 +0000)
Even when the underlying HW doesn't offer the CHAIN event
(which happens with QEMU), we can always support it as we're
in control of the counter overflow.

Always advertise the event via PMCEID0_EL0.

Reviewed-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-4-maz@kernel.org
arch/arm64/kvm/pmu-emul.c

index 57765be69bea0bd58222e8ec7276deeb16ad7713..69b67ab3c4bfa9a9f2181c106f399e06ff538607 100644 (file)
@@ -701,6 +701,8 @@ u64 kvm_pmu_get_pmceid(struct kvm_vcpu *vcpu, bool pmceid1)
 
        if (!pmceid1) {
                val = read_sysreg(pmceid0_el0);
+               /* always support CHAIN */
+               val |= BIT(ARMV8_PMUV3_PERFCTR_CHAIN);
                base = 0;
        } else {
                val = read_sysreg(pmceid1_el0);