PowerPC
Introduction
Embedded system designers are becoming intensely interested in virtualization for a variety of reasons, including security, reliability, licensing, legacy software support (especially related to multicore processors), and flexibility in resource provisioning. The most prominent examples of embedded virtualization today are the Xbox 360 and Play'Station 3 game consoles, both of which ship with a hypervisor.
(IBM's Power System servers, which use server-architecture PowerPC processors, already ship with an integrated enterprise-class hypervisor, and we are not targeting those systems.)
Technical Overview
Current development is aimed at running 440 Linux kernels as guests on 440 Linux host. Since the 440 processor does not implement virtualization hardware support, this is done via "trap and emulate" of privileged instructions executed inside the guest.
In the future, guests may be optionally modified to exploit a paravirtualized interface to improve performance.
Future Hardware Support
Version 2.06 of the Power ISA defines the hardware virtualization acceleration architecture for Book E.
Freescale announed in June 2008 that the e500mc core, which will be found in the P4 QorIQ processors (such as the P4080), will implement the Book E 2.06 hypervisor architecture.
Code
There are three different components to build in a KVM system: the host kernel (which includes KVM), host userspace (which utilizes the interface exposed by the KVM kernel module), and the guest kernel (which runs inside the virtual machine).
- How to obtain, configure, and build the source code:
- PowerPC_Run - some PowerPC-specific notes on running KVM
Design and Implementation notes
- PowerPC_Book_E_MMU - a quick overview of the Book E MMU and how we virtualize it
- PowerPC_Hypercall_ABI - the ABI we intend to use for hypercalls
Measurements
- PowerPC_Exittimings - an overview of workload dependent overhead on non hardware assisted powerpc virtualization
Presentations
- State of KVM in PowerPC (KVM Forum 2008)
- Shadow TLB Management (KVM Forum 2008)
- KVM for Embedded PowerPC (KVM Forum 2007)