NEVE: Nested Virtualization Extensions for ARM
Jin Tack Lim, Christoffer Dall, Shih-Wei Li, Jason Nieh, and Marc Zyngier*
*
NEVE: Nested Virtualization Extensions for ARM Jin Tack Lim, Christo - - PowerPoint PPT Presentation
NEVE: Nested Virtualization Extensions for ARM Jin Tack Lim, Christo ff er Dall, Shih-Wei Li, Jason Nieh, and Marc Zyngier* * Nested Virtualization VM Nested VM Nested VM App App App App VM Kernel Kernel App App Guest Hypervisor
Jin Tack Lim, Christoffer Dall, Shih-Wei Li, Jason Nieh, and Marc Zyngier*
*
Hardware Host Hypervisor
VM VM Kernel App App
Guest Hypervisor
Nested VM Nested VM
Kernel App App Kernel App App
Hardware Host Hypervisor
VM VM Kernel App App
Guest Hypervisor
Nested VM Nested VM
Kernel App App Kernel App App
hypervisors in a VM
Hardware Host Hypervisor
VM VM Kernel App App
Guest Hypervisor
Nested VM Nested VM
Kernel App App Kernel App App
Architecture Design Hardware Release Evaluation
A few years..
Instructions that do trap
Host Hypervisor New Hardware
Guest Hypervisor
Instructions that don’t trap
Host Hypervisor Existing Hardware
Guest Hypervisor
Paravirtualized Instructions that do trap
Host Hypervisor Existing Hardware
Guest Hypervisor
Architecture Design Evaluation
Application Description Application Description Kernbench Kernel compile Netperf TCP_RR Network performance Hackbench Scheduler stress Netperf TCP STREAM Network performance SPECjvm2008 Java Runtime Netperf TCP MAERTS Network performance MySQL Database management Apache Web server stress Memcached Key-Value store Nginx Web server stress
(VM/nested VM)
(ARMv8.0)
5 10 15 20 25 30 35 40 45 Kernbench Hackbench SPECjvm2008 TCP RR TCP STREAM TCP MAERTS Apache Nginx Memcached MySQL ARMv8.3 VM ARMv8.3 Nested VM x86 VM x86 Nested VM
Normalized overhead (lower is better)
Hypervisor VM OS Kernel App App App EL1 EL0 EL2
Hypervisor VM OS Kernel App App App EL1 EL0 EL2 EL1 System Registers EL2 System Registers
Hypervisor VM OS Kernel App App App EL1 EL0 EL2 TTBR0_EL1 TTBR0_EL2
Hypervisor VM OS Kernel App App App EL1 EL0 EL2 EL1 System Registers EL2 System Registers
Host Hypervisor VM EL1 EL0 EL2 Guest Hypervisor Nested VM OS Kernel App App App
Host Hypervisor VM EL1 EL0 EL2 Guest Hypervisor Nested VM OS Kernel App App App
Nested VM Entry Nested VM Exit
Trap Trap
Host Hypervisor VM EL1 EL0 EL2 Guest Hypervisor Nested VM OS Kernel App App App
Nested VM Entry Nested VM Exit
Trap Trap Trap Trap TrapTrap … Trap Trap
Host Hypervisor VM EL1 EL0 EL2 Guest Hypervisor Nested VM OS Kernel App App App
VM Entry VM Exit
EL1 Registers
This is when VM register states are used
Guest Hypervisor VM Registers Memory
Guest Hypervisor VM Registers Memory
Host Hypervisor EL1 EL2 Guest Hypervisor EL1 Registers EL2 Registers
Host Hypervisor EL1 EL2 Guest Hypervisor EL1 Registers EL2 Registers
Application Description Application Description Kernbench Kernel compile Netperf TCP_RR Network performance Hackbench Scheduler stress Netperf TCP STREAM Network performance SPECjvm2008 Java Runtime Netperf TCP MAERTS Network performance MySQL Database management Apache Web server stress Memcached Key-Value store Nginx Web server stress
Normalized overhead (lower is better)
5 10 15 20 25 30 35 40 45 Kernbench Hackbench SPECjvm2008 TCP RR TCP STREAM TCP MAERTS Apache Nginx Memcached MySQL ARMv8.3 Nested VM NEVE Nested VM x86 Nested VM