From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Wanpeng Li <wanpengli@tencent.com>,
Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Maxim Levitsky <mlevitsk@redhat.com>
Subject: Re: [PATCH] KVM: selftests: Don't skip L2's VMCALL in SMM test for SVM guest
Date: Wed, 26 Jan 2022 16:23:02 +0100 [thread overview]
Message-ID: <87tudqh67d.fsf@redhat.com> (raw)
In-Reply-To: <20220125221725.2101126-1-seanjc@google.com>
Sean Christopherson <seanjc@google.com> writes:
> Don't skip the vmcall() in l2_guest_code() prior to re-entering L2, doing
> so will result in L2 running to completion, popping '0' off the stack for
> RET, jumping to address '0', and ultimately dying with a triple fault
> shutdown.
>
> It's not at all obvious why the test re-enters L2 and re-executes VMCALL,
> but presumably it serves a purpose.
I managed to forget everything but it seems my intentions were to test
two things:
- "Enter SMM during L2 execution and check that we correctly return from
it."
- "Perform save/restore while the guest is in SMM triggered during L2
execution"
the later could've been complemented with "and try running L2 after".
> The VMX path doesn't skip vmcall(), and the test can't possibly have
> passed on SVM
Well, it kind of works for me (pre-patch) :-) I do see #DF in the trace
but not #TF.
>, so just do what VMX does.
>
Makes sense. I can't recall how "+= 3" appeared.
> Fixes: d951b2210c1a ("KVM: selftests: smm_test: Test SMM enter from L2")
> Cc: Maxim Levitsky <mlevitsk@redhat.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
> tools/testing/selftests/kvm/x86_64/smm_test.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/tools/testing/selftests/kvm/x86_64/smm_test.c b/tools/testing/selftests/kvm/x86_64/smm_test.c
> index 2da8eb8e2d96..a626d40fdb48 100644
> --- a/tools/testing/selftests/kvm/x86_64/smm_test.c
> +++ b/tools/testing/selftests/kvm/x86_64/smm_test.c
> @@ -105,7 +105,6 @@ static void guest_code(void *arg)
>
> if (cpu_has_svm()) {
> run_guest(svm->vmcb, svm->vmcb_gpa);
> - svm->vmcb->save.rip += 3;
> run_guest(svm->vmcb, svm->vmcb_gpa);
> } else {
> vmlaunch();
>
> base-commit: e2e83a73d7ce66f62c7830a85619542ef59c90e4
Reviewed-and-tested-by: Vitaly Kuznetsov <vkuznets@redhat.com>
--
Vitaly
next prev parent reply other threads:[~2022-01-26 15:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-25 22:17 [PATCH] KVM: selftests: Don't skip L2's VMCALL in SMM test for SVM guest Sean Christopherson
2022-01-26 15:23 ` Vitaly Kuznetsov [this message]
2022-01-26 15:45 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tudqh67d.fsf@redhat.com \
--to=vkuznets@redhat.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mlevitsk@redhat.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=wanpengli@tencent.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.