lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
Subject[PATCH v2 00/10] KVM: x86: Clean up RESET "emulation"
From
Add dedicated helpers to emulate RESET (or at least, the parts of RESET
that KVM actually emulates) instead of having the relevant code scattered
throughout vcpu_create() and vcpu_reset().

Vitaly's innocuous suggestion to WARN on non-zero CR0 led to a wonderful
bit of git archaeology after, to my complete surprise, it fired on RESET
due to fx_init() setting CR0.ET (and XCR0.FP).

v2:
- Add patches to drop defunct fx_init() code.
- Add patch to zero CR3 at RESET/INIT.
- Add patch to mark all regs avail/dirty at creation, not at RESET/INIT.
- Add patch to WARN if CRs are non-zero at RESET. [Vitaly]

v1: https://lkml.kernel.org/r/20210914230840.3030620-1-seanjc@google.com

Sean Christopherson (10):
KVM: x86: Mark all registers as avail/dirty at vCPU creation
KVM: x86: Clear KVM's cached guest CR3 at RESET/INIT
KVM: x86: Do not mark all registers as avail/dirty during RESET/INIT
KVM: x86: Remove defunct setting of CR0.ET for guests during vCPU
create
KVM: x86: Remove defunct setting of XCR0 for guest during vCPU create
KVM: x86: Fold fx_init() into kvm_arch_vcpu_create()
KVM: VMX: Drop explicit zeroing of MSR guest values at vCPU creation
KVM: VMX: Move RESET emulation to vmx_vcpu_reset()
KVM: SVM: Move RESET emulation to svm_vcpu_reset()
KVM: x86: WARN on non-zero CRs at RESET to detect improper
initalization

arch/x86/kvm/svm/sev.c | 6 ++--
arch/x86/kvm/svm/svm.c | 29 ++++++++++--------
arch/x86/kvm/svm/svm.h | 2 +-
arch/x86/kvm/vmx/vmx.c | 68 ++++++++++++++++++++----------------------
arch/x86/kvm/x86.c | 44 +++++++++++++--------------
5 files changed, 76 insertions(+), 73 deletions(-)

--
2.33.0.464.g1972c5931b-goog

\
 
 \ /
  Last update: 2021-09-21 04:37    [W:1.193 / U:1.332 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site