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 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.