ARM Core Virtualization

ARM Core Virtualization
Prashanth Bungale, Sr. Member of Technical Staff, Mobile Virtualization
January 23rd 2012
Sponsored by MIT and VMware Academic Programs
VMware: www.vmware.com
VMware Labs: labs.vmware.com
© 2012 VMware Inc. All rights reserved
Agenda
 Mobile Virtualization and BYOD Use Case
 Overview of ARM CPU State
 ARM Instruction Set Virtualization
 ARM MMU Virtualization
 Comparison of x86 vs. ARM Virtualizability
2
Copyright ® VMware, Inc. All Rights Reserved.
MVP – Manage Corporate Phone on Employee Owned Device
PERSONAL
CORPORATE
♬
One Device – Two Phones
3
Copyright ® VMware, Inc. All Rights Reserved.
Benefits
 For enterprises
• Safely support wide diversity of mobile phones accessing corporate assets
• Enforce security and compliance policies
• Reduce device expenses by supporting “bring your own device program”
• Manage Mobile and Desktop from a single interface
• Write corporate applications once and make them portable to multiple
platforms
 For employees
• No need to carry two devices anymore
• Have freedom of choice in terms of device they can use for work
4
Copyright ® VMware, Inc. All Rights Reserved.
ARM




5
Predominant architecture in mobile phone world
Over 15 billion chips shipped to date
Over 10 million chips shipped every day
Looking to enter the server/datacenter market in future
5
ARM CPU State
Coprocessor Registers
6
Copyright ® VMware, Inc. All Rights Reserved.
CPSR: Current Program Status Register
N Z C V Q
IT
[1:0]
J
Reserved
GE[3:0]
IT[7:2]
E A
ITSTATE
E ENDIANSTATE
7
F T
Interrupt
Masks
Execution State Registers:
ISETSTATE
I
M[4:0]
Current
Processor Mode
Privileged-only Access Registers
Execution State Registers
Condition Flags
Copyright ® VMware, Inc. All Rights Reserved.
Dealing with Sensitive Instructions
• Interpretation / Full Emulation
• Binary Translation
• Para-Virtualization
• Shallow Para-Virtualization: replace sensitive instructions
• Deep Para-Virtualization: replace sensitive subsystems
• Binary Patching / Pre-Virtualization
• Hardware Assisted Virtualization
8
8
Copyright ® VMware, Inc. All Rights Reserved.
Lightweight Para Virtualization: 1-1 Hypercalls
 Replace sensitive instructions with 1-1 Hypercalls
• Use trap instruction to issue hypercall
• Encode hypercall type & original instruction bits in hypercall hint
• Example:
mrs Rd, R <cpsr/spsr>
swi 0x088000
mrs r8, cpsr
 Trap and Emulate Semantics
• Upon trapping into the monitor, decode the hypercall type and the original
instruction bits, and emulate instruction semantics
9
Copyright ® VMware, Inc. All Rights Reserved.
MMU Virtualization
 Shadow PT
• Intercept guest MMU events of interest
• Data/Prefetch Aborts, TTBR deltas, PT deltas, TLB ops
• Maintain (lazily) VMM-controlled, trusted shadow PT
 Para-Virtualized trusted guest PT
• Highly intrusive to guest MMU software
 Hardware virtualization support
• Nested / 2-stage Page Tables: VA->PA; PA->MA
10
Copyright ® VMware, Inc. All Rights Reserved.
Privilege Levels & Access Permissions
Guest always executes in machine User mode
• Protect monitor/host from guest
• Avoid virtualization holes
How to protect guest privileged from guest user?
 6 distinct guest access permissions
{PNA-UNA, PRW-UNA, PRW-URO, PRW-URW, PRO-UNA, PRO-URO}
 Only 3 shadow access permission equivalence classes
{{PNA-UNA, PRW-UNA, PRO-UNA}, {PRW-URO, PRO-URO}, {PRW-URW}}
{{P**-UNA}, {P**-URO}, {P**-URW}}
 No injective mapping possible!
11
Copyright ® VMware, Inc. All Rights Reserved.
Dual Shadow Page Tables
Use two shadow page tables for each guest page table
• Privileged/User shadow PTs
• Switch on privilege mode switches
12
Guest AP
Priv. Shadow AP
User Shadow AP
PNA-UNA
P**-UNA
P**-UNA
PRW-UNA
P**-URW
P**-UNA
PRW-URO
P**-URW
P**-URO
PRW-URW
P**-URW
P**-URW
PRO-UNA
P**-URO
P**-UNA
PRO-URO
P**-URO
P**-URO
Copyright ® VMware, Inc. All Rights Reserved.
{User, Priv} Shadows
Shadow User page table
Guest page table
Shadow Priv. page table
13
Copyright ® VMware, Inc. All Rights Reserved.
Comparison of ARM vs. x86 Virtualizability
 Sensitive Instructions
Type of Sensitive
Instructions
Violating
Goldberg’s
Requirement #
X86 [3]
ARM
Sensitive Register
Access
3B
SGDT, SIDT, SLDT,
SMSW, PUSHF/POPF
-
Protection System
References
3C
LAR, LSL, VERR, VERW,
PUSH/POP, CALL, JMP,
INT n, RET, STR, MOVE
LDM/STM (user regs),
LDRT/STRT (“As User”)
Both
3B & 3C
-
MRS, MSR, CPS, SRS,
RFE, DPSPC,
LDM (exc. return)
[3] John Scott Robin and Cynthia Irvine, Analysis of the Intel Pentium’s Ability to Support a
Secure Virtual Machine Monitor, USENIX Security Symposium, 2000.
14
Copyright ® VMware, Inc. All Rights Reserved.
Comparison of ARM vs. x86 Virtualizability
 Ring compression – protection mechanisms
• x86: Segmentation + Paging
• ARM: Paging (+ domains?)
 Instruction execution vs. Data Read/Write protection
• x86: CS for instruction fetch vs. DS/other for data access
• ARM: No explicit distinction b/w execute and read protection
 Cache architecture
• x86: Largely transparent; PIPT across all versions
• ARM: Exposes a lot of the cache architecture; VIVT/VIPT/PIPT
15
Copyright ® VMware, Inc. All Rights Reserved.
Comparison of ARM vs. x86 Virtualizability
 Instruction size
• x86: Variable
• ARM: Fixed -> enables in-place patching mechanisms
 I/O
• x86: I/O instructions + memory-mapped I/O
• ARM: Only memory-mapped I/O
16
Copyright ® VMware, Inc. All Rights Reserved.
Thank You!
17
Copyright ® VMware, Inc. All Rights Reserved.
Next in IAP VMware Mobile Virtualization series…
 Mobile I/O virtualization
• Mobile VMs interact with virtual I/O devices
• E.g. touchscreen, display, storage, GPS, Bluetooth, WiFi, GSM, GPU,
cameras, accelerometers, audio, keyboard, etc.
• Explore I/O virtualization techniques with a mobile focus
 Application-level virtualization
• Deprivileged hypervisor design and implementation
• Distribute a hypervisor via a mobile app store
 Programming exercise
• Based on today’s talk and the concepts from application-level virt.
• Complete the exercise, enter a draw for exciting prize (iPad!)
18