[PATCH v3 0/2] KVM: SVM: Create separate vmcbs for L1 and L2
From: Cathy Avery
Date: Mon Oct 26 2020 - 13:42:31 EST
svm->vmcb will now point to either a separate vmcb L1 ( not nested ) or L2 vmcb ( nested ).
Changes:
v2 -> v3
- Added vmcb switching helper.
- svm_set_nested_state always forces to L1 before determining state
to set. This is more like vmx and covers any potential L2 to L2 nested state switch.
- Moved svm->asid tracking to pre_svm_run and added ASID set dirty bit
checking.
v1 -> v2
- Removed unnecessary update check of L1 save.cr3 during nested_svm_vmexit.
- Moved vmcb01_pa to svm.
- Removed get_host_vmcb() function.
- Updated vmsave/vmload corresponding vmcb state during L2
enter and exit which fixed the L2 load issue.
- Moved asid workaround to a new patch which adds asid to svm.
- Init previously uninitialized L2 vmcb save.gpat and save.cr4
Tested:
kvm-unit-tests
kvm self tests
Loaded fedora nested guest on fedora
Cathy Avery (2):
KVM: SVM: Track asid from vcpu_svm
KVM: SVM: Use a separate vmcb for the nested L2 guest
arch/x86/kvm/svm/nested.c | 125 ++++++++++++++++++--------------------
arch/x86/kvm/svm/svm.c | 58 +++++++++++-------
arch/x86/kvm/svm/svm.h | 51 +++++-----------
3 files changed, 110 insertions(+), 124 deletions(-)
--
2.20.1