This series adds userspace support for creating a guest which can use SPE. It requires KVM SPE support which is in the RFC phase, hence why this series is also RFC. The kvmtool patches can also be found at [1], and the KVM SPE patches can be found at [2]. To create a guest with SPE support the following steps must be executed: 1. Set the SPE virtual interrupt ID and then initialize the features on every VCPU. 2. After the guest memory memslots have been created, kvmtool must mlock() the VMAs backing the memslots. 3. After everything has been copied to the guest's memory, kvmtool must execute the KVM_ARM_VM_SPE_CTRL(KVM_ARM_VM_SPE_FINALIZE) on the VM fd. The first patch is a simple update to the Linux headers; the second patch add a new init list that executes last which is necessary to make sure the gest memory will not be touched after that; and the third patch contains the actual SPE support. [1] https://gitlab.arm.com/linux-arm/kvmtool-ae/-/tree/kvm-spe-v3 [2] https://gitlab.arm.com/linux-arm/linux-ae/-/tree/kvm-spe-v3 Alexandru Elisei (1): init: Add last_{init, exit} list macros Sudeep Holla (2): update_headers: Sync kvm UAPI headers with linux 5.10-rc1 arm64: Add SPE support Makefile | 2 +- arm/aarch64/arm-cpu.c | 2 + arm/aarch64/include/asm/kvm.h | 53 +++++++- arm/aarch64/include/kvm/kvm-config-arch.h | 2 + arm/aarch64/include/kvm/kvm-cpu-arch.h | 3 +- arm/aarch64/kvm-cpu.c | 5 + arm/include/arm-common/kvm-config-arch.h | 1 + arm/include/arm-common/spe.h | 7 + arm/spe.c | 154 ++++++++++++++++++++++ include/kvm/util-init.h | 6 +- include/linux/kvm.h | 117 +++++++++++++++- powerpc/include/asm/kvm.h | 8 ++ x86/include/asm/kvm.h | 42 +++++- 13 files changed, 387 insertions(+), 15 deletions(-) create mode 100644 arm/include/arm-common/spe.h create mode 100644 arm/spe.c -- 2.29.1 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm