[PATCH v2 06/14] KVM: arm64: Remap PMUv3 events onto hardware
Marc Zyngier
maz at kernel.org
Wed Feb 19 08:45:27 PST 2025
On Mon, 03 Feb 2025 18:31:03 +0000,
Oliver Upton <oliver.upton at linux.dev> wrote:
>
> Use the provided helper to map PMUv3 event IDs onto hardware, if the
> driver exposes such a helper. This is expected to be quite rare, and
> only useful for non-PMUv3 hardware.
>
> Tested-by: Janne Grunau <j at jannau.net>
> Signed-off-by: Oliver Upton <oliver.upton at linux.dev>
> ---
> arch/arm64/kvm/pmu-emul.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c
> index 62349b670cf9..60cf973e2af9 100644
> --- a/arch/arm64/kvm/pmu-emul.c
> +++ b/arch/arm64/kvm/pmu-emul.c
> @@ -673,6 +673,18 @@ static bool kvm_pmc_counts_at_el2(struct kvm_pmc *pmc)
> return kvm_pmc_read_evtreg(pmc) & ARMV8_PMU_INCLUDE_EL2;
> }
>
> +static u64 kvm_map_pmu_event(struct kvm *kvm, u64 eventsel)
> +{
> + struct arm_pmu *pmu = kvm->arch.arm_pmu;
> + int hw_event;
> +
> + if (!pmu->map_pmuv3_event)
> + return eventsel;
> +
> + hw_event = pmu->map_pmuv3_event(eventsel);
> + return (hw_event < 0) ? eventsel : hw_event;
I find this a bit odd. If we can translate events, but failed to do
so, we still install the originally requested event, and we have no
idea what this maps to on the HW.
I'd rather we just don't install that event at all rather than
counting something random.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
More information about the linux-arm-kernel
mailing list