From: Thomas Gleixner <tglx@kernel.org>
To: Eric Biggers <ebiggers@kernel.org>, x86@kernel.org
Cc: linux-um@lists.infradead.org, linux-raid@vger.kernel.org,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
Christoph Hellwig <hch@lst.de>,
Andrew Morton <akpm@linux-foundation.org>,
Eric Biggers <ebiggers@kernel.org>
Subject: Re: [PATCH v2 1/8] x86/fpu: Check for missing AVX and AVX-512 xstate bits
Date: Wed, 29 Jul 2026 00:35:22 +0200 [thread overview]
Message-ID: <87fr12hhed.ffs@fw13> (raw)
In-Reply-To: <20260728021603.79870-2-ebiggers@kernel.org>
On Mon, Jul 27 2026 at 19:15, Eric Biggers wrote:
> If the CPU declares AVX or AVX-512 support, verify that the
> corresponding xstate bits are also set. If not, warn and clear them.
That's clearly a firmware bug which has to be treated as all other
inconsistencies of that sort.
> This eliminates the perceived need for AVX and AVX-512 optimized code in
> the kernel to call cpu_has_xfeatures(). That has never been universally
> done, which strongly suggests that it has never really been needed in
> practice, but this should remove any remaining doubt.
Indeed it is inconsistent all over the place. While looking at the
follow up patches I wondered how many of these remaining nested
conditions are redundant. Most of them should be covered by the
dependency checks. If they are not, then we should add them.
> Signed-off-by: Eric Biggers <ebiggers@kernel.org>
> ---
> arch/x86/kernel/fpu/xstate.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
> index a7b6524a9dea2..904ff933c0d88 100644
> --- a/arch/x86/kernel/fpu/xstate.c
> +++ b/arch/x86/kernel/fpu/xstate.c
> @@ -799,6 +799,23 @@ static u64 __init guest_default_mask(void)
> return ~(u64)XFEATURE_MASK_USER_DYNAMIC;
> }
>
> +/* Clear any X86_FEATURE_* used by the kernel whose xfeatures are missing. */
> +static void __init clear_cpu_caps_with_missing_xfeatures(u64 xfeatures)
> +{
> + u64 mask;
> +
> + mask = XFEATURE_MASK_FPSSE | XFEATURE_MASK_YMM;
> + if (boot_cpu_has(X86_FEATURE_AVX) && (xfeatures & mask) != mask) {
> + pr_err("x86/fpu: Disabling AVX support due to missing xstate features\n");
Please make these
pr_err(FW_BUG "...")
As that's what it is.
Thanks,
tglx
next prev parent reply other threads:[~2026-07-28 22:35 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-28 2:15 [PATCH v2 0/8] x86: Remove cpu_has_xfeatures() and add AVX-512 xor_gen() Eric Biggers
2026-07-28 2:15 ` [PATCH v2 1/8] x86/fpu: Check for missing AVX and AVX-512 xstate bits Eric Biggers
2026-07-28 5:27 ` Borislav Petkov
2026-07-28 5:45 ` Eric Biggers
2026-07-28 18:20 ` Borislav Petkov
2026-07-28 18:34 ` Eric Biggers
2026-07-28 22:59 ` Borislav Petkov
2026-07-28 23:34 ` Eric Biggers
2026-07-28 23:47 ` Borislav Petkov
2026-07-28 9:23 ` David Laight
2026-07-28 22:35 ` Thomas Gleixner [this message]
2026-07-28 2:15 ` [PATCH v2 2/8] um: " Eric Biggers
2026-07-28 2:37 ` sashiko-bot
2026-07-30 23:06 ` Borislav Petkov
2026-07-28 2:15 ` [PATCH v2 3/8] crypto: x86 - Stop using cpu_has_xfeatures() Eric Biggers
2026-07-28 9:30 ` David Laight
2026-07-28 23:40 ` Eric Biggers
2026-07-28 2:15 ` [PATCH v2 4/8] lib/crypto: x86: " Eric Biggers
2026-07-30 23:19 ` Borislav Petkov
2026-07-30 23:47 ` Eric Biggers
2026-07-31 4:26 ` Borislav Petkov
2026-07-28 2:16 ` [PATCH v2 5/8] lib/crc: " Eric Biggers
2026-07-28 2:16 ` [PATCH v2 6/8] x86/fpu: Remove cpu_has_xfeatures() Eric Biggers
2026-07-28 2:16 ` [PATCH v2 7/8] lib/raid/xor: x86: Remove redundant X86_FEATURE_OSXSAVE check Eric Biggers
2026-07-28 3:41 ` Christoph Hellwig
2026-07-28 2:16 ` [PATCH v2 8/8] lib/raid/xor: x86: Add AVX-512 optimized xor_gen() Eric Biggers
2026-07-28 3:44 ` Christoph Hellwig
2026-07-28 3:44 ` [PATCH v2 0/8] x86: Remove cpu_has_xfeatures() and add AVX-512 xor_gen() Christoph Hellwig
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=87fr12hhed.ffs@fw13 \
--to=tglx@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=ebiggers@kernel.org \
--cc=hch@lst.de \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=linux-um@lists.infradead.org \
--cc=x86@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.