xen on arm
TRANSCRIPT
![Page 1: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/1.jpg)
Xen on ARM
Stefano Stabellini
![Page 2: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/2.jpg)
What is Xen?● a type-1 hypervisor● small footprint (less than 90K LOC)
![Page 3: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/3.jpg)
Xen: Open SourceGPLv2 with DCO (like Linux)Diverse contributor community
![Page 4: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/4.jpg)
Xen: Open Sourcesource:Mike Dayhttp://code.ncultra.org
![Page 5: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/5.jpg)
Xen: the gears of the cloud● large user base
more than 10 million individuals users
● power the largest clouds inproduction
● not just for servers
![Page 6: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/6.jpg)
Xen Architecture
Hardware
Xen
Dom0 DomU
HW drivers
PV backends PV Frontends
DomU
PV Frontends
DomU
PV Frontends
![Page 7: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/7.jpg)
Xen Architecture:driver domains
Hardware
Xen
Dom0 DomU
NetFront
Disk Driver Domain
Toolstack Disk Driver
BlockBack
Network Driver Domain
Network Driver
NetBack BlockFront
![Page 8: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/8.jpg)
● disaggregation and componentization● security and isolation● resilience● hardware vendors can run their drivers in
separate VMs○ could run in a RTOS environment○ hidden from the user
■ media codecs, crypto keys, etc.
Xen Architecture:driver domains
![Page 9: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/9.jpg)
Xen on ARM: not just a port● a lean and simple architecture
○ removed cruft accumulated during the years○ no emulation, no QEMU○ use PV drivers for IO as early as possible○ one type of guest○ exploit the hardware as much as possible
● a very good match for the hardware● clean architecture = small code base
![Page 10: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/10.jpg)
Xen on ARM architecture
![Page 11: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/11.jpg)
Xen on ARM architecture
![Page 12: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/12.jpg)
Code sizesometimes smaller is better
● X86_64-bit: ~120,000LOC (~4,000 ASM)● ARM code ~= 1/10 x86_64 code
Common ARMv7 ARMv8 Total
xen/arch/arm 5,122 1,969 821 7,912
C 5,023 406 344 5,773
ASM 99 1,563 477 2,139
xen/include/asm-arm 2,315 563 666 3,544
TOTAL 7,437 2,532 1,487 11,456
![Page 13: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/13.jpg)
Achievements of one year
11/11 08/12 11/12 03/13 07/13
First Xen on ARM talk atXen Summit 2012
Xen support for ARM upstream in Linux 3.7
Xen running on real ARM hardware
09/12
Xen 64-bit on ARM64
01/13
Citrix announces that will be joining Linaro
Xen support for ARM64 upstream in Linux 3.11
06/13
Xen 4.3 released with ARM and ARM64 support
Part-time Xen ARM hacking starts
You are here
![Page 14: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/14.jpg)
Xen-devel ARM traffic from August 2012: ● 4685 emails: 360 emails per month!● 39% of which are not from Citrix
A growing community
![Page 15: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/15.jpg)
Hardware supportUpstream:● Versatile Express Cortex A15● Arndale board● ARMv8 FVP
In progress:● Cubieboard2● Calxeda “Midway”● Applied Micro “Mustang”● Broadcom Brahma-B15● OMAP5
![Page 16: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/16.jpg)
Porting Xen to a new board● Xen only relies on GIC and GT
● platform specific code in Xen is reduced to:
○ secondary cpus bring up
○ UART drivers
○ any platform specific bootup quirks (ideally none)
![Page 17: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/17.jpg)
Upstream featuresXen v4.3:● basic lifecycle operations● memory ballooning● scheduler configurations and vcpu pinning
Linux v3.11:● dom0 and domU support● 32-bit and 64-bit support● SMP support● PV disk, network and console
![Page 18: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/18.jpg)
Android on Xen on ARM● Android is based on the Linux kernel
○ Jelly Bean uses Linux 3.4, when it updates to 3.7 will get Xen on ARM support out of the box
● Additional work needed to support client devices (compass, GPS, etc.) on multiple VMs○ easy to export 1 device to 1 VM○ otherwise each type of device needs a PV drivers
pair
![Page 19: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/19.jpg)
PV ProtocolsRequest Producer
Request Consumer
Response Producer
Response Consumer
Backend Frontend
![Page 20: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/20.jpg)
PV Protocols● shared ring protocol● software interrupts AKA event channels● consensual memory sharing: grant table● easy to write● plenty of examples
○ network, block, console, PCI, keyboard, mouse, framebuffer, sound, SCSI, USB, …
![Page 21: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/21.jpg)
Porting other OSes to Xen on ARM● No invasive modifications needed● only some new drivers:
○ grant table, xenbus and event channels○ PV drivers for network, block, console, etc.
● BSD drivers already exist in NetBSD and FreeBSD, can they be reused?
● FreeBSD port to Xen on ARM in progress
![Page 22: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/22.jpg)
Coming in Xen 4.4● 64-bit guest support● live-migration● SWIOTLB
![Page 23: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/23.jpg)
A look into the future● IOMMU support in Xen● device assignment● UEFI booting● ACPI support
![Page 24: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/24.jpg)
Xen for automotive: why?● type-1● small footprint
○ small codebase○ no QEMU, no emulation
● driver domains / service VMs○ componentization○ security○ support for legacy drivers
● supports Linux out of the box● easy to port other OSes to Xen on ARM
![Page 25: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/25.jpg)
● http://www.xenproject.org
● Xen on ARM @wiki.xenproject.org goo.gl/FKNXe
● http://lists.xen.org/mailman/listinfo/xen-devel
More Information
![Page 26: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/26.jpg)
Questions?
![Page 27: Xen on ARM](https://reader034.vdocuments.mx/reader034/viewer/2022052300/5863b5711a28ab0e30915852/html5/thumbnails/27.jpg)