A regression was introduced by commit f2c7ef3ba955
("KVM: nSVM: cancel KVM_REQ_GET_NESTED_STATE_PAGES on nested vmexit"). When
L2->L1 exit is forced immediately after restoring nested state,
KVM_REQ_GET_NESTED_STATE_PAGES request is cleared and VMCS12 changes (e.g.
fresh RIP) are not reflected to eVMCS. The consequent nested vCPU run gets
broken. Add a test for the condition (PATCH2). PATCH1 is a preparatory
change, PATCH3 adds a test for a situation when KVM_GET_NESTED_STATE is
requested right after KVM_SET_NESTED_STATE, this is still broken in KVM
(so the patch is not to be committed).
Vitaly Kuznetsov (3):
KVM: selftests: evmcs_test: Check that VMLAUNCH with bogus EVMPTR is
causing #UD
KVM: selftests: evmcs_test: Check that VMCS12 is alway properly synced
to eVMCS after restore
KVM: selftests: evmcs_test: Test that KVM_STATE_NESTED_EVMCS is never
lost
.../testing/selftests/kvm/x86_64/evmcs_test.c | 150 +++++++++++++-----
1 file changed, 108 insertions(+), 42 deletions(-)