From: "Alex Bennée" <alex.bennee@linaro.org>
To: Mark Brown <broonie@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Will Deacon <will@kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>,
Oliver Upton <oupton@kernel.org>,
Dave Martin <Dave.Martin@arm.com>,
Fuad Tabba <tabba@google.com>,
Mark Rutland <mark.rutland@arm.com>,
Ben Horgan <ben.horgan@arm.com>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org,
Peter Maydell <peter.maydell@linaro.org>,
Eric Auger <eric.auger@redhat.com>
Subject: Re: [PATCH v9 04/30] arm64/fpsimd: Check enable bit for FA64 when saving EFI state
Date: Thu, 29 Jan 2026 16:39:33 +0000 [thread overview]
Message-ID: <87343o8jay.fsf@draig.linaro.org> (raw)
In-Reply-To: <20251223-kvm-arm64-sme-v9-4-8be3867cb883@kernel.org> (Mark Brown's message of "Tue, 23 Dec 2025 01:20:58 +0000")
Mark Brown <broonie@kernel.org> writes:
> Currently when deciding if we need to save FFR when in streaming mode prior
> to EFI calls we check if FA64 is supported by the system. Since KVM guest
> support will mean that FA64 might be enabled and disabled at runtime switch
> to checking if traps for FA64 are enabled in SMCR_EL1 instead.
>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---
> arch/arm64/kernel/fpsimd.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
> index 887fce177c92..f4e8cee00198 100644
> --- a/arch/arm64/kernel/fpsimd.c
> +++ b/arch/arm64/kernel/fpsimd.c
> @@ -1948,6 +1948,11 @@ static bool efi_sm_state;
> * either doing something wrong or you need to propose some refactoring.
> */
>
> +static bool fa64_enabled(void)
> +{
> + return read_sysreg_s(SYS_SMCR_EL1) & SMCR_ELx_FA64;
> +}
> +
> /*
> * __efi_fpsimd_begin(): prepare FPSIMD for making an EFI runtime services call
> */
> @@ -1980,7 +1985,7 @@ void __efi_fpsimd_begin(void)
> * Unless we have FA64 FFR does not
> * exist in streaming mode.
> */
> - if (!system_supports_fa64())
> + if (!fa64_enabled())
> ffr = !(svcr & SVCR_SM_MASK);
> }
>
> @@ -2028,7 +2033,7 @@ void __efi_fpsimd_end(void)
> * Unless we have FA64 FFR does not
> * exist in streaming mode.
> */
> - if (!system_supports_fa64())
> + if (!fa64_enabled())
> ffr = false;
> }
> }
This is conflicting with the now merged 63de2b3859ba1 (arm64/efi: Remove
unneeded SVE/SME fallback preserve/store handling) so I think this patch
can now be dropped?
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
next prev parent reply other threads:[~2026-01-29 16:39 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-23 1:20 [PATCH v9 00/30] KVM: arm64: Implement support for SME Mark Brown
2025-12-23 1:20 ` [PATCH v9 01/30] arm64/sysreg: Update SMIDR_EL1 to DDI0601 2025-06 Mark Brown
2026-01-07 19:24 ` Fuad Tabba
2026-02-03 13:00 ` Alex Bennée
2025-12-23 1:20 ` [PATCH v9 02/30] arm64/fpsimd: Update FA64 and ZT0 enables when loading SME state Mark Brown
2026-01-07 19:25 ` Fuad Tabba
2026-01-08 11:54 ` Mark Brown
2026-01-08 14:09 ` Fuad Tabba
2026-01-08 15:57 ` Mark Brown
2026-01-08 16:19 ` Fuad Tabba
2026-01-08 16:42 ` Mark Brown
2025-12-23 1:20 ` [PATCH v9 03/30] arm64/fpsimd: Decide to save ZT0 and streaming mode FFR at bind time Mark Brown
2026-01-07 19:25 ` Fuad Tabba
2025-12-23 1:20 ` [PATCH v9 04/30] arm64/fpsimd: Check enable bit for FA64 when saving EFI state Mark Brown
2026-01-07 19:25 ` Fuad Tabba
2026-01-29 16:39 ` Alex Bennée [this message]
2026-01-29 16:41 ` Mark Brown
2026-01-29 17:29 ` Alex Bennée
2025-12-23 1:20 ` [PATCH v9 05/30] arm64/fpsimd: Determine maximum virtualisable SME vector length Mark Brown
2026-01-07 19:25 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 06/30] KVM: arm64: Pay attention to FFR parameter in SVE save and load Mark Brown
2026-01-08 14:09 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 07/30] KVM: arm64: Pull ctxt_has_ helpers to start of sysreg-sr.h Mark Brown
2026-01-08 14:09 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 08/30] KVM: arm64: Move SVE state access macros after feature test macros Mark Brown
2026-01-08 14:09 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 09/30] KVM: arm64: Rename SVE finalization constants to be more general Mark Brown
2026-01-08 14:09 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 10/30] KVM: arm64: Document the KVM ABI for SME Mark Brown
2026-01-08 14:10 ` Fuad Tabba
2026-02-09 15:18 ` Peter Maydell
2026-02-16 17:55 ` Mark Brown
2025-12-23 1:21 ` [PATCH v9 11/30] KVM: arm64: Define internal features " Mark Brown
2026-01-09 15:55 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 12/30] KVM: arm64: Rename sve_state_reg_region Mark Brown
2026-01-09 15:55 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 13/30] KVM: arm64: Store vector lengths in an array Mark Brown
2026-01-09 15:55 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 14/30] KVM: arm64: Implement SME vector length configuration Mark Brown
2026-01-09 15:59 ` Fuad Tabba
2026-01-12 13:27 ` Mark Brown
2026-01-12 13:28 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 15/30] KVM: arm64: Support SME control registers Mark Brown
2026-01-09 16:31 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 16/30] KVM: arm64: Support TPIDR2_EL0 Mark Brown
2026-01-09 16:57 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 17/30] KVM: arm64: Support SME identification registers for guests Mark Brown
2026-01-09 18:01 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 18/30] KVM: arm64: Support SME priority registers Mark Brown
2026-01-12 11:59 ` Fuad Tabba
2026-01-13 19:08 ` Mark Brown
2025-12-23 1:21 ` [PATCH v9 19/30] KVM: arm64: Provide assembly for SME register access Mark Brown
2026-01-12 17:59 ` Fuad Tabba
2026-01-13 19:20 ` Mark Brown
2026-01-14 10:08 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 20/30] KVM: arm64: Support userspace access to streaming mode Z and P registers Mark Brown
2026-01-12 18:35 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 21/30] KVM: arm64: Flush register state on writes to SVCR.SM and SVCR.ZA Mark Brown
2026-01-12 19:08 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 22/30] KVM: arm64: Expose SME specific state to userspace Mark Brown
2026-01-13 14:06 ` Fuad Tabba
2026-01-14 17:07 ` Mark Brown
2025-12-23 1:21 ` [PATCH v9 23/30] KVM: arm64: Context switch SME state for guests Mark Brown
2026-01-13 14:24 ` Fuad Tabba
2026-01-14 17:27 ` Mark Brown
2026-01-15 9:02 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 24/30] KVM: arm64: Handle SME exceptions Mark Brown
2026-01-13 14:29 ` Fuad Tabba
2025-12-23 1:21 ` [PATCH v9 25/30] KVM: arm64: Expose SME to nested guests Mark Brown
2026-01-13 14:37 ` Fuad Tabba
2026-01-14 18:22 ` Mark Brown
2025-12-23 1:21 ` [PATCH v9 26/30] KVM: arm64: Provide interface for configuring and enabling SME for guests Mark Brown
2026-01-13 14:40 ` Fuad Tabba
2026-01-14 18:48 ` Mark Brown
2025-12-23 1:21 ` [PATCH v9 27/30] KVM: arm64: selftests: Remove spurious check for single bit safe values Mark Brown
2026-01-13 10:05 ` Ben Horgan
2025-12-23 1:21 ` [PATCH v9 28/30] KVM: arm64: selftests: Skip impossible invalid value tests Mark Brown
2026-01-13 10:52 ` Ben Horgan
2025-12-23 1:21 ` [PATCH v9 29/30] KVM: arm64: selftests: Add SME system registers to get-reg-list Mark Brown
2025-12-23 1:21 ` [PATCH v9 30/30] KVM: arm64: selftests: Add SME to set_id_regs test Mark Brown
2026-01-13 14:58 ` [PATCH v9 00/30] KVM: arm64: Implement support for SME Fuad Tabba
2026-01-13 16:10 ` Mark Brown
2026-03-06 17:08 ` Mark Brown
2026-02-25 9:22 ` Alex Bennée
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=87343o8jay.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=Dave.Martin@arm.com \
--cc=ben.horgan@arm.com \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=eric.auger@redhat.com \
--cc=joey.gouly@arm.com \
--cc=kvm@vger.kernel.org \
--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=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=shuah@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=tabba@google.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