Presentation is loading. Please wait.

Presentation is loading. Please wait.

KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy.

Similar presentations


Presentation on theme: "KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy."— Presentation transcript:

1 KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy

2 Virtualization & Hypervisor www.qyjohn.net

3 Virtualization & Hypervisor (cont.) www.software.intel.co m Xen, VMWare ESX Bare Metal / Native Hypervisor VMWare Workstation Hosted Hypervisor Which type of Hypervisor is better?

4 KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor ARM Linux KernelHypervisor (KVM) QEMU Guest OS Apps QEMU Guest OS Apps QEMU Guest OS Apps QEMU Guest OS Apps Full Virtualization

5 Prior ARMV7 Cannot Emulate Trap & Emulate Not Classically Virtualizable

6 ARM V7 Virtualization Extension Trap & Emulate

7 CPU Virtualization From Hyp Mode, hardware Configurable to trap sensitive instructions and interrupt to Hyp Mode Hardware Configurable to trap sensitive instructions and interrupt directly to VM's Kernel mode Trap Why trapping at Kernel Mode is useful?

8 CPU Virtualization Hypervisor should be lightweight and simple to program Reduced Number of Control Registers Page tables entries is protected from user mode, as they should not be shared with user mode Hyp mode has its own separate address space

9 Memory Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf Hardware support to virtualize physical memory: Stage 2 Page Tables Enabled/Disabled from Hyp Mode

10 Interrupt Virtualization Generic Interrupt Controller http://infocenter.arm.com / Configures GIC Send ACK & EOI(End-of- interrupt)

11 Interrupt Virtualization Generic Interrupt Controller http://infocenter.arm.com / Cumbersome & Expensive Trapping Interrupt in Hyp Mode Hardware Hypervisor 1) Interrupt 2) Trap VM 3) Emulate Virtual Interrupt By signal

12 Interrupt Virtualization Generic Interrupt Controller (V2.0) http://infocenter.arm.com / Virtual GIC Virtual CPU Interfaces But No Virtual Distributor Why Virtual Distributor is required?

13 Interrupt Virtualization Generic Interrupt Controller (V2.0) http://infocenter.arm.com / Virtual GIC Trapping Interrupt in Kernel Mode Virtual Hardware Hypervisor 1) Interrupt 2) Trap VM

14 Timer Virtualization Generic Timer support http://infocenter.arm.com / ARM introduces Virtual Timer and Counter But requires Timer operations to be performed by Hyp CPU 0 Counter Timer 0 CPU 1Timer 1 CPU 2Timer 2 CPU 3Timer 3 Can be configured from Hyp Mode

15 Timer Virtualization Generic and Virtualized Timer support CPU 0 Counter Timer 0 Virtual CPU 0 Virtual Timer 0 CPU 1Timer 1 Virtual CPU 1 Virtual Timer 1 CPU 2Timer 2 Virtual CPU 2 Virtual Timer 2 CPU 3Timer 3 Virtual CPU 3 Virtual Timer 3 Virtual Counter Accessible from Hyp mode Accessible from VMs Why Virtual Timer support is required?

16 Hypervisor Architecture Linux Kernel KVM Firstly, Linux is written to work in kernel mode and would not run unmodified in Hyp Mode Secondly, Running entire kernel in Hyp Mode would adversely affect native performance Hyp mode has its own separate address space. This requires explicitly map user space data while accessing user space memory Some registers and table formats are different in Hyp mode than in kernel mode

17 Hypervisor Architecture Split-Mode Virtualization Linux Kernel KVM http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

18 Hypervisor Architecture Split-Mode Virtualization Handles High level Functionality Handles Low Level Functionality http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

19 Hypervisor Architecture Split-Mode Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

20 Hypervisor Architecture Split-Mode Virtualization Store GP regs, host config Configure VGIC, Virtual Timer, Traps, stage2 pagetable regs Restore Guest GP regs, VM config

21 Hypervisor Architecture Split-Mode Virtualization Lowvisor creates correct execution context by configuring hardware

22 Hypervisor Architecture Split-Mode Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

23 Hypervisor Architecture Split-Mode Virtualization Lowvisor: Handles Interrupts and Exceptions

24 Hypervisor Architecture Split-Mode Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

25 Hypervisor Architecture What are the Functionalities of LowVisor? Trap handler: Handles Interrupt and Exception Set Correct Execution context by configuring hardware Perform Context Switch between Host and VM execution context

26 Hypervisor Architecture Perform Context Switch between Host and VM execution context Host Execution Context Virtual Execution Context

27 CPU Virtualization Perform Context Switch between Host and VM execution context

28 CPU Virtualization Perform Context Switch between Host and VM execution context

29 Memory Virtualization Configuring page tables is a high level Functionality http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

30 Memory Virtualization But LowVisor has hardware access as it runs in Hyp Mode

31 Memory Virtualization Page Fault get_user_pages() http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

32 Interrupt Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

33 Interrupt Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

34 Interrupt Virtualization KVM/ARM implements virtual GIC Distributor in software What happens when a virtual interrupt occurs?

35 Timer Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

36 Timer Virtualization http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

37 Timer Virtualization Virtual timers cannot directly raise virtual interrupts, but always raise hardware interrupts

38 Implementation & Experimental Setup http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

39 Implementation & Experimental Setup http://www.cs.columbia.edu/~cdall/pubs/KVMARM_talk.pdf

40 Performance on Micro Benchmark Two world switches Cost of saving and restoring VGIC states hardware support to save and restore state

41 Performance on Micro Benchmark Switching the hardware mode Manipulate two registers to trap hardware supported save and restore state

42 Performance on Micro Benchmark cost of an I/O operation from the VM to a device saving and restoring VGIC hardware supported save and restore state x86 KVM saves and restores additional state lazily

43 Performance on Micro Benchmark cost of Inter-processor Interrupt Hardware supported VGIC EOI/ACK must be handled in Root mode in x86

44 Recommendation to Hardware Designers Share Kernel Mode Memory Model in Hyp Mode - Current implementation is different and require extra effort for memory management Make VGIC state access fast, or at least infrequent - Cause overhead because of slow MMIO access. Summary registers describing virtual interrupt state could be an improvement Completely avoid IPI traps - As Virtual Distributors are implemented in software, this cause some overhead.

45 Summary KVM/ARM was the first system to run unmodified guests on hardware Facilitated by split-mode virtualization Comparison with KVM

46 Questions?


Download ppt "KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy."

Similar presentations


Ads by Google