LCA13: Xen on ARM

  • 223 views
Uploaded on

Resource: LCA13 …

Resource: LCA13
Name: Xen on ARM
Date: 04-03-2013
Speaker: Ian Campbell

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
223
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Xen on ARM Stefano Stabellini and Ian Campbell
  • 2. Virtualization: why it matters
  • 3. Xen: the gears of the cloud ● large user base more than 10 million individuals users ● power the largest clouds in production ● not just for servers
  • 4. Xen: Open Source GPLv2 with DCO (like Linux) Diverse contributor community
  • 5. Xen: Open Source source: Mike Day http://code.ncultra.org
  • 6. Xen Architecture Hardware Xen Dom0 DomU HW drivers PV backends PV Frontends DomU PV Frontends DomU PV Frontends
  • 7. PV Protocols Request Producer Request Consumer Response Producer Response Consumer Backend Frontend
  • 8. Xen Architecture: driver domains Hardware Xen Dom0 DomU NetFront Disk Driver Domain Toolstack Disk Driver BlockBack Network Driver Domain Network Driver NetBack BlockFront
  • 9. Xen: advantages ● small surface of attack ● isolation ● resilience ● specialized algorithms (scheduler)
  • 10. Xen Architecture: HVM guests Hardware Xen Dom0 stubdom HW drivers PV backends HVM DomU PV Frontends HVM DomU QEMU IO emulation IO emulation
  • 11. Xen upstream status ● Xen (Dom0 and DomU support, PV frontends and backends) fully upstream in Linux since v3.0 A single 3.0.0 Linux kernel image boots on native, on Xen as domU, as dom0 and PV on HVM guest ● Xen upstream in QEMU since v1.3 ● Xen supported by SuSE, Debian, Ubuntu, Fedora, CentOS, NetBSD and more
  • 12. ARM Servers coming to market 4GB RAM, 4 cores per node 3 x 6 x 4 x 4 = 288 cores single node virtualization - manageability -
  • 13. ● exploit the hardware as much as possible ● one type of guest ○ no PVOPs ○ use PV interfaces for IO ● Rearchitected for the modern age: ○ no QEMU ○ no compat code ○ no shadow pagetables Design goals
  • 14. Xen on ARM architecture
  • 15. Xen on ARM architecture
  • 16. Exploit the hardware Exploit the hardware virtualization extensions support as much as possible: ● hypervisor mode ● MMU: second stage translation ○ no PV MMU calls: no need for PVOPs ○ no shadow pagetables: -10721 lines of code!! ● hypercall: HVC ● generic timers
  • 17. General Interrupt Controller an interrupt controller with virtualization support ● use the GIC to inject hardware interrupts into dom0 ● use the GIC to inject event notifications into any guest domains with Xen support ○ use PPI 31 ○ advertise the IRQ via Device Tree
  • 18. One type of guest to rule them all
  • 19. One type of guest Like PV guests do it: ● support booting from a supplied kernel ● no emulated devices ● use PV interfaces for IO no need for QEMU
  • 20. Like HVM guests do it: ● no PV MMU calls: exploit HW nested paging ● same entry point on native and on Xen ● use Device Tree to discover Xen presence ● no unnecessary devices in the Device Tree ● simple device emulation can be done in Xen no need for QEMU One type of guest
  • 21. Device Tree Use Device Tree to describe the virtual platform hypervisor { compatible = "xen,xen", "xen,xen-4.2"; reg = <0xb0000000 0x20000>; interrupts = <1 15 0xf08>; };
  • 22. Device Tree Use Device Tree to describe the virtual platform hypervisor { compatible = "xen,xen", "xen,xen-4.2"; reg = <0xb0000000 0x20000>; interrupts = <1 15 0xf08>; }; event notifications IRQ Grant table memory area version of the Xen ABI
  • 23. The hypercall calling convention the hypercall interface: ● hvc instruction ● hypervisor specific imm 0xEA1 ● hypercall arguments passed in registers
  • 24. a 64 bit "ready" ABI ● a single hypercall ABI for 32 bit guests and 64 bit guests no compat code in Xen ○ 2600 lines of code lighter
  • 25. ARMv8 ● Builds on foundations laid by ARMv7 ○ xen/arch/arm mostly common code ● Initially 32 bit dom0+domU on 64 ○ Kernels already ready ○ 64-bit guest support in progress ● Running on AEMv8 model ○ Foundation Model soon
  • 26. Code size sometimes smaller is better ● Entire hypervisor ~200,000LOC ○ X86 (64-bit only) ~100,000LOC (~4,000 ASM) ■ ~22,000: HVM. ~14,000 MMU 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
  • 27. Common Code mrc p15, 0, r0, c0, c0, 5 => WTF? xen/include/asm-arm/cpregs.h: #define __CP32(r, coproc, opc1, crn, crm, opc2) coproc, opc1, r, crn, crm, opc2 #define CP32(r, name...) __CP32(r, name) #define MPIDR p15,0,c0,c0,5 mrc CP32(r0, MPIDR)
  • 28. Challenges From the emulator to real hardware:
  • 29. War Stories Challenges From the emulator to real hardware: ● barriers and flushes ● cache coherency ● GIC and race conditions ● virt_timer documentation bugs
  • 30. Status of the Project: ARMv7 ● Xen and Dom0 booting on Versatile Express Cortex A15 and Arndale ● XL (Xen toolstack) ported to ARM ● PV console, disk and network working ● basic VM lifecycle operations functional ● Xen and Linux ARM patches fully upstream
  • 31. Status of the Project: ARMv8 ● Xen booting 64 bit ● Dom0 32 bit boots on Xen 64 bit ● 32 bit guest creation and destruction ● Shared code means most features developed on ARMv7 Just Work
  • 32. Xen 4.3 ○ full ARMv7 support ○ ARMv8 64-bit port of the hypervisor Xen 4.4 ○ increase HCL ○ automated testing ○ ARMv8 64-bit virtual machines and tools ○ PCI passthrough Linux 3.10/3.11 ○ full ARMv8 64-bit Xen guest support Roadmap
  • 33. Open Questions ● Boot Protocols ○ Multiboot? ● Bootloaders ○ U-boot ○ UEFI (runtime services?) ● ACPI ○ Argh! ● SysMMU
  • 34. Demo
  • 35. Xen and Linaro Opportunities: ○ testing ○ platform support ○ boot protocols ○ hardware features
  • 36. ● Talk to us, we are here all week: ○ Xen.org Keynote: Tuesday @ 08:30, Grand Ballroom ○ Xen at Demo Friday ● http://www.xen.org ● Xen on ARM @wiki.xen.org: goo.gl/FKNXe ● http://lists.xen.org/mailman/listinfo/xen-devel More Information