From: Paolo Bonzini <pbonzini@redhat.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Cc: seanjc@google.com, x86@kernel.org
Subject: [PATCH v2 0/4] x86, fpu/kvm: fix crash with AMX
Date: Thu, 1 Jan 2026 10:05:12 +0100 [thread overview]
Message-ID: <20260101090516.316883-1-pbonzini@redhat.com> (raw)
Fix a possible host panic, due to an unexpected #NM, when a KVM guest
is using AMX features.
The guest's XFD value, which is stored in fpstate->xfd, is used for both
guest execution and host XSAVE operations. However, the guest-configured
XFD setting can disable features that were enabled when the guest executed
XSAVE, and this causes a #NM when executing XRSTOR on the guest FPU state.
This can happen in two cases: due to a KVM_SET_XSAVE that includes a
disabled component, or if an interrupt causes XSAVE to be executed
before the call to fpu_update_guest_xfd().
The first patch fixes both cases, the rest is improvements to selftests
in order to cover this test and also verify that #NM faults are injected
corectly.
v1 had extra patches to export higher-level functions for KVM in place
of switch_fpu_return() and fpregs_assert_state_consistent(). Those
were part of refactoring how KVM loaded guest state when KVM_RUN is
issued, but are not needed anymore with this v2 fix and I will submit
them separately.
Tested on a Sapphire Rapids machine, reviews and acks are welcome so
that I can submit it to Linus via the KVM tree.
Paolo
Paolo Bonzini (2):
selftests: kvm: replace numbered sync points with actions
selftests: kvm: try getting XFD and XSAVE state out of sync
Sean Christopherson (2):
x86/fpu: Clear XSTATE_BV[i] in save state whenever XFD[i]=1
selftests: kvm: Verify TILELOADD actually #NM faults when XFD[18]=1
arch/x86/kernel/fpu/core.c | 32 ++++-
arch/x86/kvm/x86.c | 9 ++
tools/testing/selftests/kvm/x86/amx_test.c | 144 ++++++++++++---------
3 files changed, 123 insertions(+), 62 deletions(-)
--
2.52.0
next reply other threads:[~2026-01-01 9:05 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-01 9:05 Paolo Bonzini [this message]
2026-01-01 9:05 ` [PATCH 1/4] x86/fpu: Clear XSTATE_BV[i] in save state whenever XFD[i]=1 Paolo Bonzini
2026-01-03 2:06 ` Yao Yuan
2026-01-05 17:31 ` Sean Christopherson
2026-01-06 5:25 ` Yao Yuan
2026-01-06 0:54 ` Jim Mattson
2026-01-06 1:17 ` Sean Christopherson
2026-01-06 17:56 ` Jim Mattson
2026-01-15 16:07 ` Dave Hansen
2026-01-15 16:12 ` Paolo Bonzini
2026-01-15 16:27 ` Dave Hansen
2026-01-07 0:28 ` Chang S. Bae
2026-01-07 22:33 ` Paolo Bonzini
2026-01-08 3:06 ` Binbin Wu
2026-01-08 16:26 ` Paolo Bonzini
2026-01-15 15:54 ` Dave Hansen
2026-01-15 16:22 ` Paolo Bonzini
2026-01-15 18:19 ` Dave Hansen
2026-01-15 18:26 ` Paolo Bonzini
2026-01-15 23:43 ` Chang S. Bae
2026-01-01 9:05 ` [PATCH 2/4] selftests: kvm: replace numbered sync points with actions Paolo Bonzini
2026-01-06 0:02 ` Sean Christopherson
2026-01-07 22:28 ` Paolo Bonzini
2026-01-08 20:26 ` Sean Christopherson
2026-01-01 9:05 ` [PATCH 3/4] selftests: kvm: try getting XFD and XSAVE state out of sync Paolo Bonzini
2026-01-01 9:05 ` [PATCH 4/4] selftests: kvm: Verify TILELOADD actually #NM faults when XFD[18]=1 Paolo Bonzini
2026-01-06 1:18 ` [PATCH v2 0/4] x86, fpu/kvm: fix crash with AMX Sean Christopherson
2026-01-15 12:22 ` Borislav Petkov
2026-01-15 13:49 ` Paolo Bonzini
2026-01-15 16:39 ` Sean Christopherson
2026-01-15 17:05 ` Borislav Petkov
2026-01-15 17:12 ` Sean Christopherson
2026-01-16 12:22 ` Borislav Petkov
2026-01-21 11:35 ` Paolo Bonzini
2026-01-22 11:12 ` Borislav Petkov
2026-01-22 12:00 ` Paolo Bonzini
2026-01-23 13:23 ` Borislav Petkov
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=20260101090516.316883-1-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=seanjc@google.com \
--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®