[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <867c4hml8v.wl-maz@kernel.org>
Date: Sat, 22 Mar 2025 10:07:44 +0000
From: Marc Zyngier <maz@...nel.org>
To: Jia He <justin.he@....com>
Cc: Oliver Upton <oliver.upton@...ux.dev>,
linux-arm-kernel@...ts.infradead.org,
kvmarm@...ts.linux.dev,
Joey Gouly <joey.gouly@....com>,
Suzuki K Poulose <suzuki.poulose@....com>,
Zenghui Yu <yuzenghui@...wei.com>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] KVM: arm64: pmu: Avoid initializing KVM PMU when KVM is not initialised
On Sat, 22 Mar 2025 03:51:15 +0000,
Jia He <justin.he@....com> wrote:
>
> Currently, `kvm_host_pmu_init()` does not check if KVM has been
> successfully initialized before proceeding. This can lead to unintended
> behavior if the function is called in an environment where KVM is not
Which unintended behaviour? Other than the pointless allocation of a
tiny amount of memory? Does anything really go wrong?
> available, e.g., kernel is landed in EL1.
s/landed in/booted from/
>
> Signed-off-by: Jia He <justin.he@....com>
> ---
> arch/arm64/kvm/pmu.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/arch/arm64/kvm/pmu.c b/arch/arm64/kvm/pmu.c
> index 7169c1a24dd6..e39c48d12b81 100644
> --- a/arch/arm64/kvm/pmu.c
> +++ b/arch/arm64/kvm/pmu.c
> @@ -227,6 +227,13 @@ void kvm_host_pmu_init(struct arm_pmu *pmu)
Huh:
maz@...ley-girl:~/hot-poop/arm-platforms$ git grep -l kvm_host_pmu_init
arch/arm64/kvm/pmu-emul.c
drivers/perf/arm_pmu.c
include/linux/perf/arm_pmu.h
Amusingly, arch/arm64/kvm/pmu.c is nowhere to be seen in this list.
I have no idea what this patch applies to, but that's neither 6.13,
the current upstream, nor kvmarm/next.
> {
> struct arm_pmu_entry *entry;
>
> + /*
> + * Prevent unintended behavior where KVM is not available or not
> + * successfully initialised, e.g., kernel is landed in EL1.
Same comment here.
> + */
> + if (!is_kvm_arm_initialised())
This is definitely the wrong thing to check for, as it relies on the
probe ordering between the PMU drivers and KVM. Relying on that is not
acceptable.
If you're worried about a kernel booted at EL1, then check for that.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
Powered by blists - more mailing lists