Re: [PATCH v2] KVM: arm64: Constrain the host to the maximum shared SVE VL with pKVM

From: Marc Zyngier
Date: Thu Sep 12 2024 - 10:56:21 EST


On Thu, 12 Sep 2024 15:45:27 +0100,
Mark Brown <broonie@xxxxxxxxxx> wrote:
>
> [1 <text/plain; us-ascii (7bit)>]
> On Thu, Sep 12, 2024 at 03:21:43PM +0100, Fuad Tabba wrote:
>
> > One part that you haven't changed is setting ZCR_EL2 during el2 setup:
> > arch/arm64/include/asm/el2_setup.h: .Linit_sve_ : lines 290/291
>
> > I guess at that point it's not straightforward to figure sve_max_vl.
> > Is there a window after el2 setup where we might actually get the VL
> > implied by ZCR_ELx_LEN_MASK, or would it always get set to
> > sve_vq_from_vl(kvm_host_sve_max_vl) - 1 ?
>
> Yeah, at that point we have no idea what any other cores might look like
> and there's just generally a bootstrapping issue - we need to see the
> actual maximum VLs for the PEs to work out what the maximum VL for the
> system is so we can tell KVM what to enforce.

That's fine. By the time KVM initialises, all the "early" CPUs will be
on, and pKVM actively prevents any late onlining of CPUs.

The only gotcha would be if "something" snapshots the "large" VL in
between two CPU boots, but we really don't expect that sort of things.

M.

--
Without deviation from the norm, progress is not possible.