Re: [PATCH] KVM: selftests: restore special vmmcall code layout needed by the harness
From: Maxim Levitsky
Date:  Thu Dec 01 2022 - 08:50:24 EST
On Thu, 2022-12-01 at 10:28 +0100, Vitaly Kuznetsov wrote:
> 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>
> 
I didn't notice this fix and also found this issue.
Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx>
Best regards,
	Maxim Levitsky