From: sashiko-bot@kernel.org
To: "Sean Christopherson" <seanjc@google.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH v4 14/17] KVM: selftests: Assert success in vmlaunch() and vmresume()
Date: Fri, 04 Sep 2026 00:35:16 +0000 [thread overview]
Message-ID: <20260904003516.E329C1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260904002423.3154436-15-seanjc@google.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The vmlaunch() and vmresume() wrappers are defined as static inline functions instead of macros. Because __GUEST_ASSERT captures __FILE__ and __LINE__ at the point of its invocation, assertion failures in these wrappers will report the file and line number inside vmx.h rather than the actual caller's location in the test file.
--
commit 00cde4aa7e9af50759c8cee7b3f7fecea0caf3ed
Author: Sean Christopherson <seanjc@google.com>
KVM: selftests: Assert success in vmlaunch() and vmresume()
This patch updates the outer vmlaunch and vmresume selftests APIs to assert
success directly, deduplicating error checking across tests. Tests expecting
VM-Enter failures now explicitly use the double-underscore versions.
> diff --git a/tools/testing/selftests/kvm/include/x86/vmx.h b/tools/testing/selftests/kvm/include/x86/vmx.h
> index d0ac8e128d985..1419043b41dd3 100644
> --- a/tools/testing/selftests/kvm/include/x86/vmx.h
> +++ b/tools/testing/selftests/kvm/include/x86/vmx.h
> @@ -362,14 +362,14 @@ static inline u64 vmptrst(void)
> int __vmlaunch(void);
> int __vmresume(void);
>
> -static inline int vmlaunch(void)
> +static inline void vmlaunch(void)
> {
> - return __vmlaunch();
> + __GUEST_ASSERT(!__vmlaunch(), "vmlaunch hit VM-Fail");
> }
[Severity: Medium]
Because __GUEST_ASSERT captures the __FILE__ and __LINE__ macros at the point
of its invocation, placing it inside a static inline function will cause
assertion failures to always report the location inside vmx.h instead of the
actual caller's location in the test file (for example, inside state_test.c
or nested_emulation_test.c).
Does this cause a loss of debugging context when a VM-Fail assertion triggers
in tests with multiple vmlaunch invocations? Could vmlaunch be defined as a
macro instead to preserve the caller's location?
>
> -static inline int vmresume(void)
> +static inline void vmresume(void)
> {
> - return __vmresume();
> + __GUEST_ASSERT(!__vmresume(), "vmresume hit VM-Fail");
> }
[Severity: Medium]
Similarly for vmresume, using __GUEST_ASSERT in an inline function will mask
the file and line number of the actual test invocation. Would a macro be more
appropriate here as well to retain the debugging context?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260904002423.3154436-1-seanjc@google.com?part=14
next prev parent reply other threads:[~2026-09-04 0:35 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 0:24 [PATCH v4 00/17] KVM: nVMX: Adjust VMPTRLD/VMPTRST behavior with active eVMCS Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 01/17] KVM: nVMX: Make VMPTRLD result in #UD when eVMCS is used Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 02/17] KVM: nVMX: Make VMPTRST return eVMCS GPA when it " Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 03/17] KVM: selftests: Don't clobber RFLAGS in happy path of __KVM_ASM_SAFE() Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 04/17] KVM: selftests: Adapt to the updated VMPTRST behavior when eVMCS is used Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 05/17] KVM: selftests: Check VMPTRLD with active eVMCS Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 06/17] KVM: selftests: Assert success in vmptrst(), kill off vmptrstz() Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 07/17] KVM: selftests: Always assert that vmxon() and prepare_for_vmx_operation() succeed Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 08/17] KVM: selftests: Always assert that vmclear() succeeds Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 09/17] KVM: selftests: Always assert that vmptrld() succeeds Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 10/17] KVM: selftests: Drop useless return code from load_vmcs() Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 11/17] KVM: selftests: Add macros to handle simple VMX instructions Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 12/17] KVM: selftests: Drop dead return code from evmcs_vmptrld() and load_evmcs() Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 13/17] KVM: selftests: Dedup assembly code for VMLAUNCH and VMRESUME Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 14/17] KVM: selftests: Assert success in vmlaunch() and vmresume() Sean Christopherson
2026-09-04 0:35 ` sashiko-bot [this message]
2026-09-04 0:24 ` [PATCH v4 15/17] KVM: selftests: Add __vmwrite() and use it when initializing optional fields Sean Christopherson
2026-09-04 0:35 ` sashiko-bot
2026-09-11 15:55 ` Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 16/17] KVM: selftests: Always assert that vmwrite() succeeds Sean Christopherson
2026-09-04 0:24 ` [PATCH v4 17/17] KVM: selftests: Always assert that vmreadz() succeeds Sean Christopherson
2026-09-04 0:36 ` sashiko-bot
2026-09-21 14:05 ` [PATCH v4 00/17] KVM: nVMX: Adjust VMPTRLD/VMPTRST behavior with active eVMCS Sean Christopherson
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=20260904003516.E329C1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=seanjc@google.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.