RE: [PATCH v3 0/2] KVM: SVM: Create separate vmcbs for L1 and L2

From: Babu Moger
Date: Wed Nov 11 2020 - 16:36:20 EST


Hi Cathy,
I was going to test these patches. But it did not apply on my tree.
Tried on kvm(https://git.kernel.org/pub/scm/virt/kvm/kvm.git) and
Mainline
(https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git). What
is your base tree?
thanks
Babu

> -----Original Message-----
> From: Cathy Avery <cavery@xxxxxxxxxx>
> Sent: Monday, October 26, 2020 12:42 PM
> To: linux-kernel@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; pbonzini@xxxxxxxxxx
> Cc: vkuznets@xxxxxxxxxx; Huang2, Wei <Wei.Huang2@xxxxxxx>;
> mlevitsk@xxxxxxxxxx; sean.j.christopherson@xxxxxxxxx
> Subject: [PATCH v3 0/2] KVM: SVM: Create separate vmcbs for L1 and L2
>
> 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