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(-)
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
Queued, thanks. Paolo
* Sean Christopherson (seanjc@google.com) wrote: > 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). Thanks for pulling those together; the set of 3 passes my same (light) smoke test. Dave > > 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 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On Wed, Aug 24, 2022, Dr. David Alan Gilbert wrote: > * Sean Christopherson (seanjc@google.com) wrote: > > 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). > > Thanks for pulling those together; the set of 3 passes my same (light) smoke test. Paolo, do you want to grab this series for 6.0?
© 2016 - 2026 Red Hat, Inc.