KVM on IBM POWER8 servers
Last June, IBM released server machines based on its new POWER8 processor chip. Among the many cool new features in these systems, one stands out: you can now order these systems with KVM as the hypervisor, as an alternative to IBM's proprietary PowerVM.
Our flavour of KVM (we call it PowerKVM) is based on the Linux kernel, KVM, qemu and libvirt, all of which are open source. We also include the open-source Kimchi web interface for virtualization management, or OpenStack or oVirt can be used for management.
The host kernel on these POWER8 machines uses the services of a piece of firmware called OPAL, for Open Power Abstraction Layer. OPAL is open source, and provides services such as console, real-time clock, non-volatile RAM and a boot loader.
This presentation examines this software stack and covers the issues in porting KVM to run on the POWER8 CPU, which was designed for PowerVM. Some ingenuity was required to bridge the gap to the KVM model of virtualization. In particular, each POWER8 core has 8 hardware threads, but will only run 4 separate guests simultaneously, which creates interesting problems in scheduling guests.
Paul Mackerras works in IBM's Linux Technology Center, where he leads a group of people whose mission is to bring open-source virtualization to IBM's Power systems. Previously he was the Linux kernel maintainer for the PowerPC architecture. He is also the author of the "gitk" commit visualization tool and the maintainer of the PPP package.