From: Sohil Mehta <sohil.mehta@intel.com>
To: "Chang S. Bae" <chang.seok.bae@intel.com>,
<linux-kernel@vger.kernel.org>
Cc: <x86@kernel.org>, <tglx@linutronix.de>, <mingo@redhat.com>,
<bp@alien8.de>, <dave.hansen@linux.intel.com>
Subject: Re: [PATCH RFC v2 7/9] x86/fpu/apx: Disallow conflicting MPX presence
Date: Mon, 14 Apr 2025 10:09:54 -0700 [thread overview]
Message-ID: <b18e4a00-c404-474c-8839-862f78125f37@intel.com> (raw)
In-Reply-To: <20250320234301.8342-8-chang.seok.bae@intel.com>
On 3/20/2025 4:42 PM, Chang S. Bae wrote:
> APX is introduced as xstate component 19, following AMX. However, in the
> non-compacted format, its offset overlaps with the space previously
> occupied by the now-deprecated MPX:
>
> 45fc24e89b7c ("x86/mpx: remove MPX from arch/x86")
>
Would it be useful to describe why and how this is possible?
My knowledge on this fairly limited, is it because the size of the APX
register state is the same or less than the legacy MPX state?
Also, what other options does the kernel have to handle this?
There was an earlier email from Dave that describes the trade-offs.
Would it be useful to insert some form of summary here or in a different
patch?
https://lore.kernel.org/lkml/674db309-e206-4bb4-bf99-b3c39bff7973@intel.com/
> To prevent conflicts, the kernel must ensure the CPU never expose both
> features at the same time. If so, it indicates unreliable hardware. In
> such cases, XSAVE should be disabled entirely as a precautionary measure.
>
> Add a sanity check to detect this condition and disable XSAVE if an
> invalid hardware configuration is identified.
>
> Note: MPX state components remain enabled on legacy systems solely for
> KVM guest support.
>
I didn't understand this properly. Can you please explain more? Is there
an impact or restriction that this imposes on a combination of legacy
and modern components?
Old KVM — new Guest kernel
or
New KVM — Old guest kernel
> Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
> ---
> arch/x86/kernel/fpu/xstate.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
> index 2a270683a762..0d68d5c4bc48 100644
> --- a/arch/x86/kernel/fpu/xstate.c
> +++ b/arch/x86/kernel/fpu/xstate.c
> @@ -814,6 +814,17 @@ void __init fpu__init_system_xstate(unsigned int legacy_size)
> goto out_disable;
> }
>
> + if (fpu_kernel_cfg.max_features & XFEATURE_MASK_APX &&
> + fpu_kernel_cfg.max_features & (XFEATURE_MASK_BNDREGS | XFEATURE_MASK_BNDCSR)) {
> + /*
> + * This is a problematic CPU configuration where two
> + * conflicting state components are both enumerated.
> + */
> + pr_err("x86/fpu: both APX and MPX present in the CPU's xstate features: 0x%llx.\n",
> + fpu_kernel_cfg.max_features);
s/both/Both
For the user, this statement doesn't necessarily seem like an error
message, nor does it say what action the kernel takes.
IIUC, there is no other print that says the kernel is disabling XSAVE
once it jumps to out_disable?
It might be useful to add a "disabling XSAVE" print at the end of this
statement, like the other error messages in the same function.
With this change,
Reviewed-by: Sohil Mehta <sohil.mehta@intel.com>
> + goto out_disable;
> + }
> +
> fpu_kernel_cfg.independent_features = fpu_kernel_cfg.max_features &
> XFEATURE_MASK_INDEPENDENT;
>
next prev parent reply other threads:[~2025-04-14 17:09 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-27 18:44 [PATCH RFC v1 00/11] x86: Support Intel Advanced Performance Extensions Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 01/11] x86/fpu/xstate: Simplify print_xstate_features() Chang S. Bae
2025-02-27 18:51 ` Dave Hansen
2025-02-27 18:52 ` Ingo Molnar
2025-02-27 19:04 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 02/11] x86/fpu/xstate: Introduce xstate order table and accessor macro Chang S. Bae
2025-02-27 19:03 ` Dave Hansen
2025-02-27 19:34 ` Andrew Cooper
2025-02-27 19:42 ` Ingo Molnar
2025-03-20 23:46 ` Chang S. Bae
2025-02-27 19:05 ` Ingo Molnar
2025-02-27 19:32 ` Dave Hansen
2025-02-27 19:36 ` Ingo Molnar
2025-02-27 19:49 ` Andrew Cooper
2025-02-27 20:06 ` Ingo Molnar
2025-02-27 21:10 ` Andrew Cooper
2025-02-27 21:28 ` Ingo Molnar
2025-02-27 21:30 ` Ingo Molnar
2025-02-27 22:23 ` Andrew Cooper
2025-02-28 3:10 ` Chang S. Bae
2025-02-28 17:11 ` Ingo Molnar
2025-02-27 19:56 ` Dave Hansen
2025-02-27 20:02 ` Ingo Molnar
2025-02-27 20:19 ` Dave Hansen
2025-02-27 20:29 ` Ingo Molnar
2025-02-27 21:17 ` Dave Hansen
2025-02-27 21:37 ` Ingo Molnar
2025-02-27 23:54 ` Dave Hansen
2025-02-28 15:20 ` Sean Christopherson
2025-02-27 18:44 ` [PATCH RFC v1 03/11] x86/fpu/xstate: Remove xstate offset check Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 04/11] x86/fpu/xstate: Adjust XSAVE buffer size calculation Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 05/11] x86/fpu/xstate: Adjust xstate copying logic for user ABI Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 06/11] x86/fpu/mpx: Remove MPX xstate component support Chang S. Bae
2025-02-27 19:12 ` Ingo Molnar
2025-02-28 3:12 ` Chang S. Bae
2025-03-20 23:47 ` Chang S. Bae
2025-04-01 17:13 ` Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 07/11] x86/cpufeatures: Add X86_FEATURE_APX Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 08/11] x86/fpu/apx: Define APX state component Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 09/11] x86/fpu/apx: Disallow conflicting MPX presence Chang S. Bae
2025-02-27 23:16 ` Dave Hansen
2025-02-27 23:58 ` Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 10/11] x86/fpu/apx: Enable APX state support Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 11/11] selftests/x86/apx: Add APX test Chang S. Bae
2025-02-27 19:15 ` [PATCH RFC v1 00/11] x86: Support Intel Advanced Performance Extensions Ingo Molnar
2025-02-27 19:36 ` Dave Hansen
2025-02-28 3:10 ` Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 0/9] " Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 1/9] x86/fpu/xstate: Remove xstate offset check Chang S. Bae
2025-03-25 10:18 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-14 7:34 ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 2/9] x86/fpu/xstate: Introduce xfeature order table and accessor macro Chang S. Bae
2025-03-25 10:18 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-14 7:34 ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 3/9] x86/fpu/xstate: Adjust XSAVE buffer size calculation Chang S. Bae
2025-03-25 10:28 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-14 7:34 ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 4/9] x86/fpu/xstate: Adjust xstate copying logic for user ABI Chang S. Bae
2025-03-25 10:18 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-03-25 10:28 ` tip-bot2 for Chang S. Bae
2025-04-14 7:34 ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 5/9] x86/cpufeatures: Add X86_FEATURE_APX Chang S. Bae
2025-04-11 16:12 ` [PATCH RFC v2a " Chang S. Bae
2025-04-11 16:54 ` Sohil Mehta
2025-04-11 18:23 ` Chang S. Bae
2025-04-11 21:57 ` Sohil Mehta
2025-04-12 8:43 ` Ingo Molnar
2025-04-14 8:23 ` Ingo Molnar
2025-04-14 17:28 ` Sohil Mehta
2025-04-14 17:32 ` Dave Hansen
2025-04-14 17:45 ` Sohil Mehta
2025-04-14 18:02 ` Chang S. Bae
2025-04-14 18:12 ` Sohil Mehta
2025-04-14 18:31 ` Chang S. Bae
2025-04-16 2:16 ` [PATCH 00/10] x86/fpu: APX enablement and assorted FPU code improvements Chang S. Bae
2025-04-16 2:16 ` [PATCH 01/10] x86/cpufeatures: Add X86_FEATURE_APX Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:16 ` [PATCH 02/10] x86/fpu/apx: Define APX state component Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:16 ` [PATCH 03/10] x86/fpu/apx: Disallow conflicting MPX presence Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:16 ` [PATCH 04/10] x86/fpu/apx: Enable APX state support Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:16 ` [PATCH 05/10] selftests/x86/apx: Add APX test Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:16 ` [PATCH 06/10] x86/fpu: Log XSAVE disablement consistently Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 16:56 ` [PATCH 06/10] " Sohil Mehta
2025-04-16 17:03 ` Chang S. Bae
2025-04-16 18:04 ` Sohil Mehta
2025-04-16 2:16 ` [PATCH 07/10] x86/fpu: Refactor xfeature bitmask update code for sigframe XSAVE Chang S. Bae
2025-04-16 8:05 ` Ingo Molnar
2025-04-16 16:55 ` Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:16 ` [PATCH 08/10] x86/pkeys: Simplify PKRU update in signal frame Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:16 ` [PATCH 09/10] x86/fpu: Remove export of mxcsr_feature_mask Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 2:17 ` [PATCH 10/10] x86/fpu: Rename fpu_reset_fpregs() to fpu_reset_fpstate_regs() Chang S. Bae
2025-04-16 8:17 ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 8:07 ` [PATCH 00/10] x86/fpu: APX enablement and assorted FPU code improvements Ingo Molnar
2025-04-16 16:56 ` Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 6/9] x86/fpu/apx: Define APX state component Chang S. Bae
2025-04-11 22:54 ` Sohil Mehta
2025-03-20 23:42 ` [PATCH RFC v2 7/9] x86/fpu/apx: Disallow conflicting MPX presence Chang S. Bae
2025-04-14 17:09 ` Sohil Mehta [this message]
2025-04-14 17:25 ` Dave Hansen
2025-03-20 23:42 ` [PATCH RFC v2 8/9] x86/fpu/apx: Enable APX state support Chang S. Bae
2025-04-14 15:41 ` Sohil Mehta
2025-03-20 23:43 ` [PATCH RFC v2 9/9] selftests/x86/apx: Add APX test Chang S. Bae
2025-04-14 16:02 ` Sohil Mehta
2025-03-25 10:25 ` [PATCH RFC v2 0/9] x86: Support Intel Advanced Performance Extensions Ingo Molnar
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=b18e4a00-c404-474c-8839-862f78125f37@intel.com \
--to=sohil.mehta@intel.com \
--cc=bp@alien8.de \
--cc=chang.seok.bae@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--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 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®