IBM posts KVM series for ARM64 guests on s390 mainframes
A second KVM module would share arm64 code and drive the Start Arm Execution instruction so s390 hosts can accelerate ARM virtual machines.
IBM engineers have posted the eighth revision of a large KVM series that would let s390 hosts run KVM-accelerated ARM64 guests alongside native s390 virtualization.
The work, led by Steffen Eiden, centers on a new host facility called Start Arm Execution (SAE). SAE is the s390 analogue of SIE for ARM guests: the hypervisor points it at a control block and the hardware runs the guest until an exit. Host state that must stay consistent across SAE entries is saved and restored around each run. Machines that support SAE would advertise it through hwcap and /proc/cpuinfo.
To avoid forking the ARM KVM stack, the series extracts selected arm64 headers and code regions into the s390 tree and builds a second module, kvm-arm64, that can load beside the existing s390 KVM module. Shared sections are marked so arm64 changes stay small; s390 copies only the marked parts (or whole headers when nothing is marked) and mangles symbols when both modules are built in. Common KVM options that used to be global Kconfig symbols move into per-implementation defines so the two guests need not inherit each other's stubs.
Userspace that needs the arm64 KVM API on s390 would have to vendor those headers; the s390 build will not ship or install them. Early guest aborts still exit to userspace and stop the guest; proper error injection is planned once more system registers are host-visible.
Arm maintainer Catalin Marinas has begun acking preparatory arm64 cleanups, while s390 reviewers have suggested small consistency fixes such as returning -ENODEV when SAE is absent. The series is still under review and is framed as keeping arm64 churn and long-term maintenance cost low while opening mainframe hosts to accelerated ARM guests.