© 2010 VMware Inc. All rights reserved ARM Virtualization: CPU & MMU Issues Prashanth Bungale, Sr. Member of Technical Staff.

Slides:



Advertisements
Similar presentations
Virtualization Dr. Michael L. Collard
Advertisements

Virtualization Technology
Popek & Goldberg’s notation
E Virtual Machines Lecture 3 Memory Virtualization
© 2012 VMware Inc. All rights reserved CPU and Memory Virtualization Prashanth Bungale, Sr. Member of Technical Staff, Mobile Virtualization January 23.
Network Implementation for Xen and KVM Class project for E : Network System Design and Implantation 12 Apr 2010 Kangkook Jee (kj2181)
A critical assault upon “A Comparison of Software and Hardware Techniques for x86 Virtualization” Chris Smowton.
Disco Running Commodity Operating Systems on Scalable Multiprocessors.
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy.
Introduction to Virtual Machines
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
LINUX Virtualization Running other code under LINUX.
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
虛擬化技術 Virtualization and Virtual Machines
A Survey on Virtualization Technologies
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
Tanenbaum 8.3 See references
Zen and the Art of Virtualization Paul Barham, et al. University of Cambridge, Microsoft Research Cambridge Published by ACM SOSP’03 Presented by Tina.
CSC 660: Advanced Operating SystemsSlide #1 CSC 660: Advanced OS Virtual Machines.
This document is for informational purposes only, and Tekelec reserves the right to change any aspect of the products, features or functionality described.
Intel
© 2012 VMware Inc. All rights reserved ARM Core Virtualization Prashanth Bungale, Sr. Member of Technical Staff, Mobile Virtualization January 23 rd 2012.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
A Survey on Virtualization Technologies. Virtualization is “HOT” Microsoft acquires Connectix Corp. EMC acquires VMware Veritas acquires Ejascent IBM,
Virtualization Concepts Presented by: Mariano Diaz.
Xen I/O Overview. Xen is a popular open-source x86 virtual machine monitor – full-virtualization – para-virtualization para-virtualization as a more efficient.
Virtualization Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation is licensed.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
Outline Basic VM Concepts Formal Definitions Virtualization Theorems
CS533 Concepts of Operating Systems Jonathan Walpole.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Virtual Memory Part 1 Li-Shiuan Peh Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology May 2, 2012L22-1
資工系網媒所 NEWS 實驗室 /450 What is Virtualization ? etc Virtualization Running Applications (x-platform) Running Applications (x-platform) Security Sharing Hardware.
Cloud Operating System Unit 09 Cloud OS Core Technology M. C. Chiang Department of Computer Science and Engineering National Sun Yat-sen University Kaohsiung,
1 CSE451 Architectural Supports for Operating Systems Autumn 2002 Gary Kimura Lecture #2 October 2, 2002.
Full and Para Virtualization
CSC 660: Advanced Operating SystemsSlide #1 CSC 660: Advanced OS Virtual Machines.
Lecture 26 Virtual Machine Monitors. Virtual Machines Goal: run an guest OS over an host OS Who has done this? Why might it be useful? Examples: Vmware,
Lecture 12 Virtualization Overview 1 Dec. 1, 2015 Prof. Kyu Ho Park “Understanding Full Virtualization, Paravirtualization, and Hardware Assist”, White.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Constructive Computer Architecture Virtual Memory: From Address Translation to Demand Paging Arvind Computer Science & Artificial Intelligence Lab. Massachusetts.
Virtualizing a Multiprocessor Machine on a Network of Computers Easy & efficient utilization of distributed resources Goal Kenji KanedaYoshihiro OyamaAkinori.
E Virtual Machines Lecture 2 CPU Virtualization Scott Devine VMware, Inc.
1 Virtualization "Virtualization software makes it possible to run multiple operating systems and multiple applications on the same server at the same.
CS 695 Topics in Virtualization and Cloud Computing, Autumn 2012 CS 695 Topics in Virtualization and Cloud Computing More Introduction + Processor Virtualization.
Virtualization-optimized architectures
Lecture 13: Virtual Machines
Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels
VIRTUALIZATION.
Virtualization.
Virtual Machine Monitors
Virtualization D. J. Foreman 2009.
Virtualization Technology
Presented by Mike Marty
Virtualization Dr. Michael L. Collard
CS352H: Computer Systems Architecture
Lecture 24 Virtual Machine Monitors
Morgan Kaufmann Publishers Large and Fast: Exploiting Memory Hierarchy
OS Virtualization.
Virtualization Techniques
A Survey on Virtualization Technologies
Chapter 33: Virtual Machines
Computer Security: Art and Science, 2nd Edition
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
Xen and the Art of Virtualization
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Chapter 33: Virtual Machines
ARM920T Processor This training module provides an introduction to the ARM920T processor embedded in the AT91RM9200 microcontroller.We’ll identify the.
Presentation transcript:

© 2010 VMware Inc. All rights reserved ARM Virtualization: CPU & MMU Issues Prashanth Bungale, Sr. Member of Technical Staff

2 Overview  Virtualizability and Sensitive Instructions  ARM CPU State  Sensitive Instructions in ARM Dealing with Sensitive Instructions In place binary translation  MMU Virtualization: Why & How?  Comparison of ARM & x86 Virtualization

3 Virtualizability and Sensitive Instructions  Defined in the context of a particular virtualization technique  Example: Trap and Emulate Model Let VM execute most of its instructions directly on the h/w Except for some sensitive instructions that trap into the VMM and are emulated Sensitive instructions are those that interfere with: Correct emulation of the VM, or Correct functioning of the VMM E.g. “Halt Machine” instruction Hardware VMM VM1VM2

4 Virtualizability and Sensitive Instructions  Sensitive Instructions as defined by Goldberg [1] Mode Referencing Instructions Sensitive Register/Memory Access Instructions Storage Protection System Referencing Instructions All I/O Instructions  Popek and Goldberg’s Theorem about strict virtualizability [2] For any conventional third generation computer, a virtual machine monitor may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions. [1] Goldberg. Architectural Principles for Virtual Computer Systems. Ph.D. thesis, Harvard University, [2] Popek and Goldberg, Formal requirements for virtualizable third generation architectures. In SOSP '73

5 ARM CPU State Coprocessor Registers

6 CPSR: Current Program Status Register NZCVQ IT [1:0] JReservedGE[3:0]IT[7:2]EAIFTM[4:0] Current Processor Mode Interrupt Masks ISETSTATE ITSTATE ENDIANSTATE E Execution State Registers: Privileged-only Access Registers Condition Flags Execution State Registers

7 Sensitive Instructions on ARM  Coprocessor Access Instructions MRC / MCR / CDP / LDC / STC  SIMD/VFP System Register Access Instructions VMRS / VMSR  TrustZone Secure State Entry Instructions SMC  Memory-Mapped I/O Access Instructions Load/Store instructions from/into memory-mapped I/O locations  Direct (Explicit/Implicit) CPSR Access Instructions MRS / MSR / CPS / SRS / RFE / LDM(Exc. Return) / DPSPC  Indirect CPSR Access Instructions LDRT / STRT – Load/Store Unprivileged (“As User”)  Banked Register Access Instructions LDM/STM(User mode registers)

8 Dealing with Sensitive Instructions  Hardware Techniques Privileged Instruction Semantics dictated by ISA - 1, 2, 3 MMU-enforced traps (e.g., page fault) - 4 Tracing/debug support (e.g., bkpt) Hardware-assisted Virtualization (e.g., extra privileged mode)

9 Dealing with Sensitive Instructions  Software Techniques Interpretation / Full Emulation Binary Translation Cached Translation  In-Place Translation Para-Virtualization Shallow Para-Virtualization: replace sensitive instructions Deep Para-Virtualization: replace sensitive subsystems (e.g., process model, page- table management, etc.) Binary Patching / Pre-Virtualization

10 In-place binary translation  ARM has a fixed instruction size 32-bit in ARM mode and 16-bit in Thumb mode  Perform binary translation in-place Instead of in a separate cache Follow control-flow Translate basic block (if not already translated) at the current PC Ensure interposition at end of translated sequence All writes (but not reads) to PC now become dangerous instructions Replace dangerous (i.e., sensitive but unprivileged) instructions 1-1 with hypercalls to force trap and emulate  Guest transparency issues Guest OS Program Counter

Hypercalls  Replace dangerous instructions with 1-1 Hypercalls Use trap instruction to issue hypercall Encode hypercall type & original instruction bits in hypercall hint Example:  Trap and Emulate Semantics Upon trapping into the monitor, decode the hypercall type and the original instruction bits, and emulate instruction semantics mrs r8, cpsr swi 0x mrs Rd, R

12 MMU Virtualization: Why?  Translation Virtualization VA  PA; PA  MA  Protection Virtualization Access permissions, domains Multiplex available hardware MMU protection support among: Protecting the hypervisor from the guests Protecting the guest kernel from guest user  Cross-architectural versions (e.g., ARMv5 on ARMv6) Dealing with differences in cache, TLB architectures, page-table layout, etc.

13 MMU Virtualization: How?  Shadow PT Intercept guest MMU events of interest Data/Prefetch Aborts, TTBR deltas, PT deltas, TLB ops Maintain (lazily) hypervisor-controlled, trusted shadow PT Options: TLB Coherency-based Shadow PTs / Cached Shadow PTs In-place Shadow PTs  Para-Virtualized trusted guest PT Highly intrusive to guest MMU software  Hardware virtualization support Nested / 2-stage Page Tables: VA->PA; PA->MA

14 Comparison of ARM vs. x86 Virtualizability  Sensitive Instructions Type of Sensitive Instructions Violating Goldberg’s Requirement # X86 [3]ARM Sensitive Register Access 3BSGDT, SIDT, SLDT, SMSW, PUSHF/POPF - Protection System References 3CLAR, LSL, VERR, VERW, PUSH/POP, CALL, JMP, INT n, RET, STR, MOVE LDM/STM (user regs), LDRT/STRT (“As User”) Both3B & 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.

15 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

16 Comparison of ARM vs. x86 Virtualizability  Instruction size x86 : Variable ARM : Fixed -> enables more in-place patching mechanisms  I/O x86 : I/O instructions + memory-mapped I/O ARM : Only memory-mapped I/O