[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <865xl5sx20.wl-maz@kernel.org>
Date: Wed, 19 Feb 2025 16:45:27 +0000
From: Marc Zyngier <maz@...nel.org>
To: Oliver Upton <oliver.upton@...ux.dev>
Cc: kvmarm@...ts.linux.dev,
Joey Gouly <joey.gouly@....com>,
Suzuki K Poulose <suzuki.poulose@....com>,
Zenghui Yu <yuzenghui@...wei.com>,
Mingwei Zhang <mizhang@...gle.com>,
Colton Lewis <coltonlewis@...gle.com>,
Raghavendra Rao Ananta <rananta@...gle.com>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
Mark Rutland <mark.rutland@....com>,
linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org,
Janne Grunau <j@...nau.net>
Subject: Re: [PATCH v2 06/14] KVM: arm64: Remap PMUv3 events onto hardware
On Mon, 03 Feb 2025 18:31:03 +0000,
Oliver Upton <oliver.upton@...ux.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@...nau.net>
> Signed-off-by: Oliver Upton <oliver.upton@...ux.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.
Powered by blists - more mailing lists