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