Re: [PATCH] KVM: selftests: restore special vmmcall code layout needed by the harness

From: Vitaly Kuznetsov
Date: Thu Dec 01 2022 - 04:30:00 EST


Sean Christopherson <seanjc@xxxxxxxxxx> writes:

> On Wed, Nov 30, 2022, Paolo Bonzini wrote:
>> Commit 8fda37cf3d41 ("KVM: selftests: Stuff RAX/RCX with 'safe' values
>> in vmmcall()/vmcall()", 2022-11-21) broke the svm_nested_soft_inject_test
>> because it placed a "pop rbp" instruction after vmmcall. While this is
>> correct and mimics what is done in the VMX case, this particular test
>> expects a ud2 instruction right after the vmmcall, so that it can skip
>> over it in the L1 part of the test.
>>
>> Inline a suitably-modified version of vmmcall() to restore the
>> functionality of the test.
>>
>> Fixes: 8fda37cf3d41 ("KVM: selftests: Stuff RAX/RCX with 'safe' values in vmmcall()/vmcall()"
>> Cc: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
>> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
>> ---
>
> We really, really need to save/restore guest GPRs in L1 when handling exits from L2.

+1, the amount of stuff we do to workaround the shortcoming (and time
we waste debugging) is getting ridiculously high.

>
> For now,
>
> Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx>
>

Reviewed-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>

--
Vitaly