Messages in this thread | | | Subject | Re: [PATCH v3 0/8] Introduce KVM_{GET|SET}_SREGS2 and fix PDPTR migration | From | Paolo Bonzini <> | Date | Thu, 10 Jun 2021 17:06:12 +0200 |
| |
On 07/06/21 11:01, Maxim Levitsky wrote: > This patch set aims to fix few flaws that were discovered > in KVM_{GET|SET}_SREGS on x86: > > * There is no support for reading/writing PDPTRs although > these are considered to be part of the guest state. > > * There is useless interrupt bitmap which isn't needed > > * No support for future extensions (via flags and such) > > Also if the user doesn't use the new SREG2 api, the PDPTR > load after migration is now done on KVM_REQ_GET_NESTED_STATE_PAGES > to at least read them correctly in cases when guest memory > map is not up to date when nested state is loaded. > > This patch series was tested by doing nested migration test > of 32 bit PAE L1 + 32 bit PAE L2 on AMD and Intel and by > nested migration test of 64 bit L1 + 32 bit PAE L2 on AMD. > The later test currently fails on Intel (regardless of my patches). > > Changes from V2: > - I took in the patch series from Sean Christopherson that > removes the pdptrs_changed function and rebased my code > on top of it. > - I updated the SET_SREGS2 ioctl to load PDPTRS from memory > when user haven't given PDPTRS. > - Minor refactoring all over the place. > > Changes from V1: > - move only PDPTRS load to KVM_REQ_GET_NESTED_STATE_PAGES on VMX > - rebase on top of kvm/queue > - improve the KVM_GET_SREGS2 to have flag for PDPTRS > and remove padding > > Patches to qemu to enable this feature were sent as well. > > Maxim Levitsky (5): > KVM: nSVM: refactor the CR3 reload on migration > KVM: nVMX: delay loading of PDPTRs to KVM_REQ_GET_NESTED_STATE_PAGES > KVM: x86: introduce kvm_register_clear_available > KVM: x86: Introduce KVM_GET_SREGS2 / KVM_SET_SREGS2 > KVM: x86: avoid loading PDPTRs after migration when possible > > Sean Christopherson (3): > KVM: nVMX: Drop obsolete (and pointless) pdptrs_changed() check > KVM: nSVM: Drop pointless pdptrs_changed() check on nested transition > KVM: x86: Always load PDPTRs on CR3 load for SVM w/o NPT and a PAE > guest > > Documentation/virt/kvm/api.rst | 48 +++++++++ > arch/x86/include/asm/kvm_host.h | 7 +- > arch/x86/include/uapi/asm/kvm.h | 13 +++ > arch/x86/kvm/kvm_cache_regs.h | 12 +++ > arch/x86/kvm/svm/nested.c | 39 +++++-- > arch/x86/kvm/svm/svm.c | 6 +- > arch/x86/kvm/vmx/nested.c | 32 ++++-- > arch/x86/kvm/x86.c | 176 +++++++++++++++++++++----------- > include/uapi/linux/kvm.h | 4 + > 9 files changed, 253 insertions(+), 84 deletions(-) >
Queued, thanks.
Paolo
| |