Re: [PATCH 00/11] KVM: arm64: nv: FPSIMD/SVE support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 01 Jun 2024 00:13:47 +0100,
Oliver Upton <oliver.upton@xxxxxxxxx> wrote:
> 
> Hey!
> 
> I've decided to start messing around with nested and have SVE support
> working for a nested guest. For the sake of landing a semi-complete
> feature upstream, I've also picked up the FPSIMD patches from the NV
> series Marc is carrying.
> 
> The most annoying part about this series (IMO) is that ZCR_EL2 traps
> behave differently from what needs to be virtualized for the guest when
> HCR_EL2.NV = 1, as it takes a sysreg trap (EC = 0x18) instead of an SVE
> trap (EC = 0x19). So, we need to synthesize the ESR value when
> reflecting back into the guest hypervisor.

That's unfortunately not a unique case. The ERETAx emulation already
requires us to synthesise the ESR on PAC check failure, and I'm afraid
ZCR_EL2 might not be the last case.

In general, we'll see this problem for any instruction or sysreg that
can generate multiple exception classes.

>
> Otherwise, some care is required to slap the guest hypervisor's ZCR_EL2
> into the right place depending on whether or not the vCPU is in a hyp
> context, since it affects the hyp's usage of SVE in addition to the VM.
> 
> There's more work to be done for honoring the L1's CPTR traps, as this
> series only focuses on getting SVE and FPSIMD traps right. We'll get
> there one day.

I have patches for that in my NV series, which would take the place of
patches 9 and 10 in your series (or supplement them, depending on how
we want to slice this).

> 
> I tested this using a mix of the fpsimd-test and sve-test selftests
> running at L0, L1, and L2 concurrently on Neoverse V2.

Thanks a lot for tackling this. It'd be good to put together a series
that has the EL2 sysreg save/restore patches as a prefix of this, plus
the CPTR_EL2 changes. That way, we'd have something that can be merged
as a consistent set.

I'll try to take this into my branch and see what explodes!

Cheers,

	M.

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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux