ARM Virtualization

Registered by sstabellini

Virtualization Topics:
1. Xen on ARM Cortex A15
2. Porting KVM to the ARM Architecture

=== Xen on ARM Cortex A15 ===

[Slides](http://www.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/2012-lpc-virt-xen-arm-stabellini.pdf)

During the last few months of 2011 the Xen Community started an effort to port Xen to ARMv7 with virtualization extensions, using the Cortex A15 processor as reference platform. The new Xen port is exploiting this set of hardware capabilities to run guest VMs in the most efficient way possible while keeping the ARM specific changes to the hypervisor and the Linux kernel to a minimum.

Developing the new port we took the chance to remove legacy concepts like PV or HVM guests and only support a single kind of guests that is comparable to "PV on HVM" in the Xen X86 world. This talk will explain the reason behind this and other design choices that we made during the early development process and it will go through the main technical challenges that we had to solve in order to accomplish our goal. Notable examples are the way Linux guests issue hypercalls and receive event channels notifications from Xen.

Is there anything that we could have done better?
Is the architecture that we lied down in the Linux kernel generic enough to be re-used by other hypervisors?

Topic Lead: Stefano Stabellini
Stefano is a Senior Software Engineer at Citrix, working on the Open Source Xen Platform team. He has been working on Xen since 2007, focusing on several different projects, spanning from Qemu to the Linux kernel. He currently maintains libxenlight, Xen support in Qemu and PV on HVM in the Linux kernel. Before joining Citrix he was a researcher at the Institute for Human and Machine Cognition, working on mobile ad hoc networks.

=== Porting KVM to the ARM Architecture ===

[Slides](http://www.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/2012-lpc-arm-zyngier.pdf)

With the introduction of the Virtualization Extensions to the ARM architecture (as implemented in the Cortex A7 and A15 processors), it is possible to implement a hardware assisted hypervisor. The KVM port to the ARM architecture, started by Christoffer Dall (University of Columbia) is an example of such a hypervisor.

Our proposal is to describe the current state of the project, explain how the various virtualization extensions (hypervisor mode, second stage translation, virtual interrupt controller, timers) are used, how the KVM implementation on ARM differs from other architectures, and what our plans are for upstreaming the code.

Topic Lead: Marc Zyngier <email address hidden>
Marc has been toying with the Linux kernel since 1993, and has been involved over time with the RAID subsystem (MD), all kind of ancient architectures (by maintaining the EISA bus), messed with consumer electronics, and now focuses on the ARM architecture.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.