All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Oliver Upton <oliver.upton@linux.dev>
Cc: kvmarm@lists.linux.dev, James Morse <james.morse@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Zenghui Yu <yuzenghui@huawei.com>,
	kvm@vger.kernel.org
Subject: Re: [PATCH 00/11] KVM: arm64: nv: FPSIMD/SVE support
Date: Sat, 01 Jun 2024 11:24:49 +0100	[thread overview]
Message-ID: <87jzj92c5q.wl-maz@kernel.org> (raw)
In-Reply-To: <20240531231358.1000039-1-oliver.upton@linux.dev>

On Sat, 01 Jun 2024 00:13:47 +0100,
Oliver Upton <oliver.upton@linux.dev> 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.

  parent reply	other threads:[~2024-06-01 10:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-31 23:13 [PATCH 00/11] KVM: arm64: nv: FPSIMD/SVE support Oliver Upton
2024-05-31 23:13 ` [PATCH 01/11] KVM: arm64: nv: Forward FP/ASIMD traps to guest hypervisor Oliver Upton
2024-05-31 23:13 ` [PATCH 02/11] KVM: arm64: nv: Forward SVE " Oliver Upton
2024-05-31 23:13 ` [PATCH 03/11] KVM: arm64: nv: Load guest FP state for ZCR_EL2 trap Oliver Upton
2024-06-01  9:47   ` Marc Zyngier
2024-06-01 16:47     ` Oliver Upton
2024-05-31 23:13 ` [PATCH 04/11] KVM: arm64: nv: Load guest hyp's ZCR into EL1 state Oliver Upton
2024-05-31 23:13 ` [PATCH 05/11] KVM: arm64: nv: Handle ZCR_EL2 traps Oliver Upton
2024-05-31 23:13 ` [PATCH 06/11] KVM: arm64: nv: Save guest's ZCR_EL2 when in hyp context Oliver Upton
2024-05-31 23:13 ` [PATCH 07/11] KVM: arm64: nv: Use guest hypervisor's max VL when running nested guest Oliver Upton
2024-05-31 23:13 ` [PATCH 08/11] KVM: arm64: nv: Ensure correct VL is loaded before saving SVE state Oliver Upton
2024-05-31 23:13 ` [PATCH 09/11] KVM: arm64: Spin off helper for programming CPTR traps Oliver Upton
2024-05-31 23:13 ` [PATCH 10/11] KVM: arm64: nv: Honor guest hypervisor's FP/SVE traps in CPTR_EL2 Oliver Upton
2024-06-03 12:36   ` Marc Zyngier
2024-06-03 17:28     ` Oliver Upton
2024-06-04 11:14       ` Marc Zyngier
2024-06-04 17:44         ` Oliver Upton
2024-05-31 23:13 ` [PATCH 11/11] KVM: arm64: Allow the use of SVE+NV Oliver Upton
2024-06-01 10:24 ` Marc Zyngier [this message]
2024-06-01 16:57   ` [PATCH 00/11] KVM: arm64: nv: FPSIMD/SVE support Oliver Upton
2024-06-02 14:28     ` Marc Zyngier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87jzj92c5q.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=james.morse@arm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=oliver.upton@linux.dev \
    --cc=suzuki.poulose@arm.com \
    --cc=yuzenghui@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.