IBM posts KVM series to run arm64 guests on s390 hosts
A seventh-round patch set wires arm64 KVM code into s390 via shared markers and a new SAE instruction for hardware-accelerated guests.
IBM engineers have posted a seventh revision of a large KVM series that lets s390 hosts run arm64 guests with hardware acceleration.
The work, led by Steffen Eiden, aims to reuse as much of the existing arm64 KVM implementation as possible instead of forking a separate hypervisor stack. Selected arm64 headers and C regions are marked with an ARM64_S390_COMMON guard so the s390 build can extract only the shared pieces, leaving native arm64 paths largely untouched. Full headers that lack markers are copied wholesale and flagged so arm64 maintainers know changes may affect s390.
Hardware acceleration rests on a new Start Arm Execution (SAE) instruction, analogous to SIE for native s390 guests. SAE takes a control block address; the host saves and restores general-purpose, access, breaking-event, and vector state around each entry so the rest of the system stays consistent. SAE presence is reported through a new hwcap and in /proc/cpuinfo.
Supporting changes prepare KVM to load two architecture modules side by side, make the KVM device name configurable, and let an implementation opt out of MMIO. Native s390 KVM gains stubs where the merged config would otherwise break the build. VM and vCPU setup reuses s390 gmap plumbing for guest memory; a minimal SMCCC path can stop a vCPU. Userspace that needs the arm64 KVM uAPI on s390 must vendor those headers, because the s390 tree will not install them.
Co-developers include Andreas Grapentin, Nina Schoetterl-Glausch, Hendrik Brueckner, and Janosch Frank. If merged, the series would make mainframe-class s390 systems a KVM host for arm64 workloads without a full reimplementation of arm guest support.