Following this morning’s announcement of IBM working with Arm on “dual architecture” hardware, we have some more details on at least what’s happening from the software side… It’s improving Arm virtualization on IBM Z Systems (s390).
A set of 27 patches were posted to the Linux kernel mailing list following this morning’s embargo lift announcing this Arm and IBM collaboration. IBM engineers have been working on “novel” virtualization acceleration for ARM on s390(x). Steffen Eiden of IBM explained with today’s patch series:
“By introducing a novel virtualization acceleration for the ARM architecture on
s390 architecture, we aim to expand the platform’s software ecosystem. This initial patch series lays the groundwork by enabling KVM-accelerated ARM CPU virtualization on s390. To achieve this, a common KVM layer between s390 and arm64 is introduced (see below for more details). Design considerations of arm64 on the s390 Architecture The s390 virtualization architecture is extended with a set of new instructions dedicated to supporting ARM-based virtual machines. The s390 KVM host acts as EL2 (hypervisor) for a EL1/EL0 (OS/application) arm64 guest. To achieve this, the new Start-Arm-Execution (SAE) instruction enables accelerated execution of arm64 VMs. Additional new s390 instructions are introduced to query available arm64 features, used to populate the arm64 ID register contents, as well as, new s390 instructions to save/restore various arm64 registers in the VM context.”
This includes changes to the Kernel-based Virtual Machine (KVM), sharing of Arm64 header files and more code sharing with s390, and other changes. Future patches are going to bring further improvements for enhancing ARM64 on s390. We’ll see if they end up doing anything similar with Arm on IBM POWER hardware too. Technical details were light in leading up today’s announcement from IBM of “dual architecture” hardware with Arm but so far it’s a virtualization play.
The KVM patches laying out this AArch64 acceleration on IBM s390 can be found via the kernel mailing list.
