From: Sean Christopherson <seanjc@google.com>
To: Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Leonardo Bras <leobras@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>
Subject: [PATCH 0/3] KVM: x86: Fix XSAVE related bugs
Date: Wed, 24 Aug 2022 03:30:54 +0000 [thread overview]
Message-ID: <20220824033057.3576315-1-seanjc@google.com> (raw)
Patch 2 (from Dave) is the headliner and fixes a bug where KVM clear the
FP+SSE bits in user_xfeatures when XSAVE is hidden from the guest and thus
prevent userspace from saving/restoring FP+SSE state on XSAVE host. This
most visibily manifests as a failed migration (KVM_GET_XSAVE succeeds on a
non-XSAVE host and KVM_SET_XSAVE fails on an XSAVE host), but also causes
KVM_GET_SAVE on XSAVE hosts to effectively corrupt guest FP+SSE state.
Patch 1 fixes a mostly theoretical bug, and is also a prerequisite for
patch 2.
Patch 3 fixes a bug found by inspection when staring at all of this. KVM
fails to check CR4.OSXSAVE when emulating XSETBV (the interception case
gets away without the check because the intercept happens after hardware
checks CR4).
Dr. David Alan Gilbert (1):
KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES
Sean Christopherson (2):
KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0
KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/kvm/cpuid.c | 11 ++++++++---
arch/x86/kvm/emulate.c | 3 +++
arch/x86/kvm/x86.c | 10 +++-------
4 files changed, 15 insertions(+), 10 deletions(-)
base-commit: 372d07084593dc7a399bf9bee815711b1fb1bcf2
--
2.37.1.595.g718a3a8f04-goog
next reply other threads:[~2022-08-24 3:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-24 3:30 Sean Christopherson [this message]
2022-08-24 3:30 ` [PATCH 1/3] KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0 Sean Christopherson
2022-08-24 3:30 ` [PATCH 2/3] KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES Sean Christopherson
2022-08-24 3:30 ` [PATCH 3/3] KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled Sean Christopherson
2022-08-24 11:31 ` [PATCH 0/3] KVM: x86: Fix XSAVE related bugs Dr. David Alan Gilbert
2022-09-20 19:19 ` Sean Christopherson
2022-09-22 21:04 ` Paolo Bonzini
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=20220824033057.3576315-1-seanjc@google.com \
--to=seanjc@google.com \
--cc=dgilbert@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=leobras@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=vkuznets@redhat.com \
/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®