This series implements two basic tests for KVM SPE: one that checks that the reported features match what is specified in the architecture, implemented in patch #3 ("arm64: spe: Add introspection test"), and another test that checks that the buffer management interrupt is asserted correctly, implemented in patch #5 ("am64: spe: Add buffer test"). The rest of the patches are either preparatory patches, or a fix, in the case of patch #2 ("lib/{bitops,alloc_page}.h: Add missing headers"). This series builds on Eric's initial version [1], to which I've added the buffer tests that I used while developing SPE support for KVM. KVM SPE support is current in RFC phase, hence why this series is also sent as RFC. The KVM patches needed for the tests to work can be found at [2]. Userspace support is also necessary, which I've implemented for kvmtool; this can be found at [3]. This series is also available in a repo [4] to make testing easier. [1] https://www.spinics.net/lists/kvm/msg223792.html [2] https://gitlab.arm.com/linux-arm/linux-ae/-/tree/kvm-spe-v3 [3] https://gitlab.arm.com/linux-arm/kvmtool-ae/-/tree/kvm-spe-v3 [4] https://gitlab.arm.com/linux-arm/kvm-unit-tests-ae/-/tree/kvm-spe-v2 Alexandru Elisei (3): lib/{bitops,alloc_page}.h: Add missing headers lib: arm/arm64: Add function to unmap a page am64: spe: Add buffer test Eric Auger (2): arm64: Move get_id_aa64dfr0() in processor.h arm64: spe: Add introspection test arm/Makefile.arm64 | 1 + lib/arm/asm/mmu-api.h | 1 + lib/arm64/asm/processor.h | 5 + lib/alloc_page.h | 2 + lib/bitops.h | 2 + lib/libcflat.h | 1 + lib/arm/mmu.c | 32 +++ arm/pmu.c | 1 - arm/spe.c | 506 ++++++++++++++++++++++++++++++++++++++ arm/unittests.cfg | 15 ++ 10 files changed, 565 insertions(+), 1 deletion(-) create mode 100644 arm/spe.c -- 2.29.1