From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
Marc Zyngier <maz@kernel.org>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>
Cc: James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Oliver Upton <oliver.upton@linux.dev>, Tom Rix <trix@redhat.com>,
kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
kvmarm@lists.linux.dev, kvmarm@lists.cs.columbia.edu,
linux-riscv@lists.infradead.org, llvm@lists.linux.dev,
linux-kernel@vger.kernel.org,
Ricardo Koller <ricarkol@google.com>,
Sean Christopherson <seanjc@google.com>,
Aaron Lewis <aaronlewis@google.com>,
Raghavendra Rao Ananta <rananta@google.com>
Subject: [PATCH 00/14] KVM: selftests: Clang fixes, Makefile cleanup
Date: Tue, 13 Dec 2022 00:16:39 +0000 [thread overview]
Message-ID: <20221213001653.3852042-1-seanjc@google.com> (raw)
Fix a variety of KVM selftests issues exposed by clang, and rework the
Makefile and .gitignore to reduce the maintenance burden of selftests.
For the Makefile, programmatically generate the list of targets by
looking for .c files, and opt-out via a dummy macro in the source
instead of forcing architectures to opt-in. The opt-out approach is
less error prone (harder to forget to add an arch), doesn't generate
unnecessary conflicts if multiple tests are added simultanesouly, and
makes it much easier to understand which tests aren't supported, e.g.
$ git grep TEST_UNSUPPORTED | grep aarch64
hardware_disable_test.c:TEST_UNSUPPORTED(aarch64);
max_guest_memory_test.c:TEST_UNSUPPORTED(aarch64);
system_counter_offset_test.c:TEST_UNSUPPORTED(aarch64);
This all started when trying to reproduce clang build errors reported by
Raghu and Aaron that were introduced by commit 6b6f71484bf4 ("KVM:
selftests: Implement memcmp(), memcpy(), and memset() for guest use").
Just getting selftests to compile with clang was a nightmare, as it took
me several hours to realize that "CC=clang make" and "make CC=clang"
aren't equivalent, and that the "include ../lib.mak" buried halfway through
the Makefile was overriding "CC=clang make".
After too many hours fighting to get clang working, my frustration with
the Makefile boiled over a bit...
Note, I have fixes for the RISC-V RSEQ bugs (outside of selftests/kvm) that
I'll post separately.
Tested on x86 and arm, build tested on s390x and RISC-V, all with both gcc
and clang.
Sean Christopherson (14):
KVM: selftests: Define literal to asm constraint in aarch64 as
unsigned long
KVM: selftests: Delete dead code in x86_64/vmx_tsc_adjust_test.c
KVM: selftests: Fix divide-by-zero bug in memslot_perf_test
KVM: selftests: Use pattern matching in .gitignore
KVM: selftests: Fix a typo in x86-64's kvm_get_cpu_address_width()
KVM: selftests: Rename UNAME_M to ARCH_DIR, fill explicitly for x86
KVM: selftests: Use proper function prototypes in probing code
KVM: selftests: Probe -no-pie with actual CFLAGS used to compile
KVM: selftests: Explicitly disable builtins for mem*() overrides
KVM: selftests: Include lib.mk before consuming $(CC)
KVM: selftests: Disable "gnu-variable-sized-type-not-at-end" warning
KVM: selftests: Use wildcards to find library source files
KVM: selftests: Use wildcards to find targets and test source files
KVM: selftests: Enable RSEQ test for RISC-V
tools/testing/selftests/kvm/.gitignore | 91 +------
tools/testing/selftests/kvm/Makefile | 229 +++---------------
.../selftests/kvm/aarch64/page_fault_test.c | 2 +-
.../selftests/kvm/access_tracking_perf_test.c | 3 +
.../selftests/kvm/dirty_log_perf_test.c | 3 +
.../selftests/kvm/hardware_disable_test.c | 4 +
.../testing/selftests/kvm/include/test_util.h | 11 +
.../selftests/kvm/lib/x86_64/processor.c | 2 +-
.../selftests/kvm/max_guest_memory_test.c | 4 +
.../kvm/memslot_modification_stress_test.c | 3 +
.../testing/selftests/kvm/memslot_perf_test.c | 6 +
tools/testing/selftests/kvm/steal_time.c | 3 +
.../kvm/system_counter_offset_test.c | 4 +
.../kvm/x86_64/vmx_tsc_adjust_test.c | 5 -
14 files changed, 80 insertions(+), 290 deletions(-)
base-commit: f1a1d3aff0cc2e68a9ebbd8810d7dcd8cfe2714b
--
2.39.0.rc1.256.g54fd8350bd-goog
next reply other threads:[~2022-12-13 0:17 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-13 0:16 Sean Christopherson [this message]
2022-12-13 0:16 ` [PATCH 01/14] KVM: selftests: Define literal to asm constraint in aarch64 as unsigned long Sean Christopherson
2022-12-13 9:51 ` Philippe Mathieu-Daudé
2022-12-13 0:16 ` [PATCH 02/14] KVM: selftests: Delete dead code in x86_64/vmx_tsc_adjust_test.c Sean Christopherson
2022-12-13 0:16 ` [PATCH 03/14] KVM: selftests: Fix divide-by-zero bug in memslot_perf_test Sean Christopherson
2022-12-13 9:46 ` Philippe Mathieu-Daudé
2022-12-13 0:16 ` [PATCH 04/14] KVM: selftests: Use pattern matching in .gitignore Sean Christopherson
2022-12-13 0:16 ` [PATCH 05/14] KVM: selftests: Fix a typo in x86-64's kvm_get_cpu_address_width() Sean Christopherson
2022-12-13 9:47 ` Philippe Mathieu-Daudé
2022-12-13 0:16 ` [PATCH 06/14] KVM: selftests: Rename UNAME_M to ARCH_DIR, fill explicitly for x86 Sean Christopherson
2022-12-13 20:03 ` Sean Christopherson
2022-12-14 9:43 ` Marc Zyngier
2022-12-24 9:12 ` Paolo Bonzini
2022-12-13 0:16 ` [PATCH 07/14] KVM: selftests: Use proper function prototypes in probing code Sean Christopherson
2022-12-13 9:48 ` Philippe Mathieu-Daudé
2022-12-13 0:16 ` [PATCH 08/14] KVM: selftests: Probe -no-pie with actual CFLAGS used to compile Sean Christopherson
2022-12-13 0:16 ` [PATCH 09/14] KVM: selftests: Explicitly disable builtins for mem*() overrides Sean Christopherson
2022-12-24 9:16 ` Paolo Bonzini
2022-12-13 0:16 ` [PATCH 10/14] KVM: selftests: Include lib.mk before consuming $(CC) Sean Christopherson
2022-12-24 9:18 ` Paolo Bonzini
2022-12-13 0:16 ` [PATCH 11/14] KVM: selftests: Disable "gnu-variable-sized-type-not-at-end" warning Sean Christopherson
2022-12-13 1:36 ` Nick Desaulniers
2022-12-13 2:13 ` Sean Christopherson
2023-01-11 16:23 ` Paolo Bonzini
2022-12-13 0:16 ` [PATCH 12/14] KVM: selftests: Use wildcards to find library source files Sean Christopherson
2022-12-24 9:23 ` Paolo Bonzini
2023-01-04 1:09 ` Sean Christopherson
2022-12-13 0:16 ` [PATCH 13/14] KVM: selftests: Use wildcards to find targets and test " Sean Christopherson
2022-12-13 0:16 ` [PATCH 14/14] KVM: selftests: Enable RSEQ test for RISC-V 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=20221213001653.3852042-1-seanjc@google.com \
--to=seanjc@google.com \
--cc=aaronlewis@google.com \
--cc=alexandru.elisei@arm.com \
--cc=aou@eecs.berkeley.edu \
--cc=james.morse@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=llvm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=oliver.upton@linux.dev \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=pbonzini@redhat.com \
--cc=rananta@google.com \
--cc=ricarkol@google.com \
--cc=suzuki.poulose@arm.com \
--cc=trix@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®