From: Mark Brown <broonie@kernel.org>
To: Marc Zyngier <maz@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Oliver Upton <oliver.upton@linux.dev>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Dave Martin <dave.martin@arm.com>,
kvmarm@lists.linux.dev, linux-doc@vger.kernel.org,
linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v4 03/14] arm64/fpsimd: Support FEAT_FPMR
Date: Wed, 6 Mar 2024 16:41:42 +0000 [thread overview]
Message-ID: <c7e3d57d-92fa-4013-b0fc-e2941fb43d20@sirena.org.uk> (raw)
In-Reply-To: <86r0h330dl.wl-maz@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 1839 bytes --]
On Fri, Feb 23, 2024 at 11:07:02AM +0000, Marc Zyngier wrote:
> Mark Brown <broonie@kernel.org> wrote:
> > --- a/arch/arm64/kvm/fpsimd.c
> > +++ b/arch/arm64/kvm/fpsimd.c
> > @@ -153,6 +153,7 @@ void kvm_arch_vcpu_ctxsync_fp(struct kvm_vcpu *vcpu)
> > fp_state.sve_vl = vcpu->arch.sve_max_vl;
> > fp_state.sme_state = NULL;
> > fp_state.svcr = &vcpu->arch.svcr;
> > + fp_state.fpmr = &vcpu->arch.fpmr;
> > fp_state.fp_type = &vcpu->arch.fp_type;
> Given the number of fields you keep track of, it would make a lot more
> sense if these FP-related fields were in their own little structure
> and tracked by a single pointer (I don't think there is a case where
> we track them independently).
I sent a patch series that attempted to address this somewhat by
refactoring things so that we initialise the struct we bind during vCPU
setup rather than each time we prepare to switch away from the guest:
https://lore.kernel.org/linux-arm-kernel/20240226-kvm-arm64-group-fp-data-v1-0-07d13759517e@kernel.org/
which you weren't terribly enthusiastic about:
https://lore.kernel.org/all/86y1b027mc.wl-maz@kernel.org/
As covered in the changelog for patch 2 of that series the FP state
includes both system registers which KVM wants to expose via it's system
register ABI and FPSIMD state which the host kernel wants to flag as
suitable for hardended usercopy by embedding in thread_struct.uw. This
means that pulling everything into a single structure which is used
throughout the kernel would require a bunch of surgery which I'm not
sure is worth the effort or ongoing maintainance cost.
The current approach is verbose but not complicated and localised to the
code managing the FP state, as I said in the discussion on that thread I
think it represents a reasonable tradeoff.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2024-03-06 16:41 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-22 16:28 [PATCH v4 00/14] arm64: Support for 2023 DPISA extensions Mark Brown
2024-01-22 16:28 ` [PATCH v4 01/14] arm64/cpufeature: Hook new identification registers up to cpufeature Mark Brown
2024-01-22 16:28 ` [PATCH v4 02/14] arm64/fpsimd: Enable host kernel access to FPMR Mark Brown
2024-02-23 11:34 ` Marc Zyngier
2024-01-22 16:28 ` [PATCH v4 03/14] arm64/fpsimd: Support FEAT_FPMR Mark Brown
2024-02-23 11:07 ` Marc Zyngier
2024-03-06 16:41 ` Mark Brown [this message]
2024-01-22 16:28 ` [PATCH v4 04/14] arm64/signal: Add FPMR signal handling Mark Brown
2024-01-22 16:28 ` [PATCH v4 05/14] arm64/ptrace: Expose FPMR via ptrace Mark Brown
2024-01-22 16:28 ` [PATCH v4 06/14] arm64/hwcap: Define hwcaps for 2023 DPISA features Mark Brown
2024-01-22 16:28 ` [PATCH v4 07/14] kselftest/arm64: Handle FPMR context in generic signal frame parser Mark Brown
2024-01-22 16:28 ` [PATCH v4 08/14] kselftest/arm64: Add basic FPMR test Mark Brown
2024-01-22 16:28 ` [PATCH v4 09/14] kselftest/arm64: Add 2023 DPISA hwcap test coverage Mark Brown
2024-01-22 16:28 ` [PATCH v4 10/14] KVM: arm64: Share all userspace hardened thread data with the hypervisor Mark Brown
2024-01-22 16:28 ` [PATCH v4 11/14] KVM: arm64: Add newly allocated ID registers to register descriptions Mark Brown
2024-02-23 11:33 ` Marc Zyngier
2024-01-22 16:28 ` [PATCH v4 12/14] KVM: arm64: Support FEAT_FPMR for guests Mark Brown
2024-02-23 11:18 ` Marc Zyngier
2024-02-23 14:46 ` Mark Brown
2024-01-22 16:28 ` [PATCH v4 13/14] KVM: arm64: selftests: Document feature registers added in 2023 extensions Mark Brown
2024-01-22 16:28 ` [PATCH v4 14/14] KVM: arm64: selftests: Teach get-reg-list about FPMR Mark Brown
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=c7e3d57d-92fa-4013-b0fc-e2941fb43d20@sirena.org.uk \
--to=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=dave.martin@arm.com \
--cc=james.morse@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=shuah@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=will@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®