From: Sean Christopherson <seanjc@google.com>
To: Piotr Zarycki <piotr.zarycki@gmail.com>
Cc: pbonzini@redhat.com, shuah@kernel.org, kvm@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] KVM: selftests: sync_regs_test: use KVM_SYNC_X86_VALID_FIELDS
Date: Tue, 12 May 2026 06:52:14 -0700 [thread overview]
Message-ID: <agMwjrRbeuJsi9OC@google.com> (raw)
In-Reply-To: <agHwV8Btww3ku3Xf@arch-piotr>
On Mon, May 11, 2026, Piotr Zarycki wrote:
> On Mon, May 11, 2026 at 07:56:50AM -0700, Sean Christopherson wrote:
> > On Mon, May 11, 2026, Piotr Zarycki wrote:
> > > Use KVM_SYNC_X86_VALID_FIELDS instead of open-coding the same three
> > > flags, ensuring the test stays in sync with any future additions.
> > >
> > > Signed-off-by: Piotr Zarycki <piotr.zarycki@gmail.com>
> > > ---
> > > tools/testing/selftests/kvm/x86/sync_regs_test.c | 3 +--
> > > 1 file changed, 1 insertion(+), 2 deletions(-)
> > >
> > > diff --git a/tools/testing/selftests/kvm/x86/sync_regs_test.c b/tools/testing/selftests/kvm/x86/sync_regs_test.c
> > > index e0c52321f87c..8f9239f9d357 100644
> > > --- a/tools/testing/selftests/kvm/x86/sync_regs_test.c
> > > +++ b/tools/testing/selftests/kvm/x86/sync_regs_test.c
> > > @@ -79,7 +79,7 @@ static void compare_vcpu_events(struct kvm_vcpu_events *left,
> > > {
> > > }
> > >
> > > -#define TEST_SYNC_FIELDS (KVM_SYNC_X86_REGS|KVM_SYNC_X86_SREGS|KVM_SYNC_X86_EVENTS)
> > > +#define TEST_SYNC_FIELDS KVM_SYNC_X86_VALID_FIELDS
> >
> > Explicitly defining the set of fields to test is very deliberate. (a) we want
> > to detect ABI breakage, e.g. if KVM removes a valid field. (b) if a field is
> > added in the future, the test likely needs to be updated, i.e. would break if
> > KVM extends KVM_SYNC_X86_VALID_FIELDS. (c) KVM_SYNC_X86_VALID_FIELDS probably
> > shouldn't be defined in a uapi header; for all intents and purposes it's a KVM-
> > internal details.
> >
> > > #define INVALID_SYNC_FIELD 0x80000000
> > >
> > > /*
> > > @@ -255,7 +255,6 @@ KVM_ONE_VCPU_TEST(sync_regs_test, req_and_verify_all_valid, guest_code)
> > > struct kvm_regs regs;
> > >
> > > /* Request and verify all valid register sets. */
> > > - /* TODO: BUILD TIME CHECK: TEST_ASSERT(KVM_SYNC_X86_NUM_FIELDS != 3); */
> > > run->kvm_valid_regs = TEST_SYNC_FIELDS;
> > > vcpu_run(vcpu);
> > > TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);
> > > --
> > > 2.54.0
> > >
>
> Thanks for the explanation. What's the preferred way to implement the
> build-time check mentioned in the TODO?
Honestly? Just delete it. It should be quite obvious if someone updates the
test to add more fields, without actually adding coverage for the new field(s).
next prev parent reply other threads:[~2026-05-12 13:52 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-11 14:34 [PATCH] KVM: selftests: sync_regs_test: use KVM_SYNC_X86_VALID_FIELDS Piotr Zarycki
2026-05-11 14:56 ` Sean Christopherson
2026-05-11 15:09 ` Piotr Zarycki
2026-05-12 13:52 ` Sean Christopherson [this message]
2026-05-12 16:13 ` [PATCH] KVM: selftests: sync_regs_test: drop stale TODO comment Piotr Zarycki
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=agMwjrRbeuJsi9OC@google.com \
--to=seanjc@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=piotr.zarycki@gmail.com \
--cc=shuah@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox