Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
A virtual Smartphone Architecture
23rd ACM Symposium on Operating Systems Principles, Cascais, Portugal, October 2011
Jeremy Andrus Christoffer Dall Alexander Van’t Hof Oren Laadan Jason Nieh
Columbia Universityin the city of new york
1
Slides © 2011 Jeremy C. Andrus <[email protected]>
Personal PhoneBusiness Phone
Developer Phone
Children’s Phone
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
2
Slides © 2011 Jeremy C. Andrus <[email protected]>
VirtualizationEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
3
Slides © 2011 Jeremy C. Andrus <[email protected]>
OSKernel
OSKernel
OSKernel
Bare-Metal Hypervisor
Hypervisor / VMM
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Hardware
Server Virtualization
poor device support / sharing
4
Slides © 2011 Jeremy C. Andrus <[email protected]>
OSOS
Host OS Kernel
OS
Hypervisor / VMM
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Hosted HypervisorDesktop Virtualization
kernelmodule
Hardware
host user space
poor device performance
emulateddevices
5
Slides © 2011 Jeremy C. Andrus <[email protected]>
OS Kernel
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
User Space SDKNon-Virtualization
no standard appsless secure custom user
space API for isolated apps
Hardware6
Slides © 2011 Jeremy C. Andrus <[email protected]>
• device diversity
• mobile usage model➡ graphics-accelerated UI
Key Challenges
Power Buttons
WiFi
GPS
Cell Radio FramebufferGPU
Binder IPC
Touchscreen
Accelerometer
Compasspmem
microphone headset
speakers
microphone
camera(s)
h.264 accel.
RTC / Alarms
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
7
Slides © 2011 Jeremy C. Andrus <[email protected]>
Cells
microphoneEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
8
Slides © 2011 Jeremy C. Andrus <[email protected]>
Cells
microphoneEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Key Observation
large: lots of windows/apps
small:one app at a time
9
Slides © 2011 Jeremy C. Andrus <[email protected]>
Cells
microphoneEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Key Observation
screen real-estate is limited, and mobile phone users are accustomed to interacting with one thing at time
10
Slides © 2011 Jeremy C. Andrus <[email protected]>
Cells
microphoneEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Usage Model
foreground / background
11
Slides © 2011 Jeremy C. Andrus <[email protected]>
Cells
microphoneEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
• multiple, isolated virtual phones (VPs) on a single mobile device
• 100% device support in each VP‣ unique phone numbers - single SIM!‣ accelerated 3D graphics!
Complete Virtualization
12
Slides © 2011 Jeremy C. Andrus <[email protected]>
Cells
microphoneEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
• less than 2% overhead in runtime tests• imperceptible switch time among VPs
Efficient Virtualization
13
Slides © 2011 Jeremy C. Andrus <[email protected]>
Cells
microphoneEvaluationOverview Graphics Cell Radio DemoMotivation Architecture
• each VP sees / uses all devices• user can run any unmodified apps• foreground VP switches like an app
Transparent Virtualization
14
Slides © 2011 Jeremy C. Andrus <[email protected]>
LinuxKernel
•••
VP 3VP 2VP 1
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Single Kernel: Multiple VPs
virtualize at OS interface
isolated collectionof processes
15
Slides © 2011 Jeremy C. Andrus <[email protected]>
LinuxKernel
•••
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Single Kernel: Device Support
all VPs access the same device simultaneouslyPower
Cell Radio
Binder IPC
Accelerometer
Compasspmem
speakerscamera(s)
hw codec
RTC / Alarms
VP 3VP 2VP 1
Buttons
WiFi
GPS
FramebufferGPU
Touchscreen
microphone headset
•••
Sens
ors
Inpu
t
And
roid
...
Aud
io/V
ideo
16
Slides © 2011 Jeremy C. Andrus <[email protected]>
LinuxKernel
Pow
er
WiF
i
Cell
Radi
o
Fram
ebuf
fer
GPU
RTC
/ A
larm
s
•••
Sens
ors
Inpu
t
And
roid
...
Aud
io/V
ideo
•••
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Device Namespaces
safely, correctly multiplex access
to devices
17
device namespaces
VP 3VP 2VP 1
Slides © 2011 Jeremy C. Andrus <[email protected]>
•••
LinuxKernel
Pow
er
WiF
i
Cell
Radi
o
Fram
ebuf
fer
GPU
RTC
/ A
larm
s
•••
Sens
ors
Inpu
t
And
roid
...
Aud
io/V
ideo
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Cells
18
VP 3VP 2VP 1
+device namespaces
foreground / background
device namespacesComplete, Efficient, TransparentMobile Virtualization
=
Slides © 2011 Jeremy C. Andrus <[email protected]>
LinuxKernel
Pow
er
WiF
i
Cell
Radi
o
Fram
ebuf
fer
GPU
RTC
/ A
larm
s
•••
Sens
ors
Inpu
t
And
roid
...
Aud
io/V
ideo
GPU
Fram
ebuf
fer
19
device namespaces
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Cell
Radi
o
efficient basic graphics virtualization
hardware accelerated graphics
proprietary/closed interface
Slides © 2011 Jeremy C. Andrus <[email protected]>
virtual addressesphysical addresses
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
screen memory
Approach 1: Single Assignment
20
GPU
Framebuffer
Slides © 2011 Jeremy C. Andrus <[email protected]>
Framebuffer virtual state
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
screen memory
Approach 2: Emulated Hardware
21
emulated framebuffer
Slides © 2011 Jeremy C. Andrus <[email protected]>
virtual addressesphysical addresses
mux_fb
screen memory
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
VP 3
backgroundmux_fb presentsidentical deviceinterface to all VPsusing device namespaces
swap virt addr mappings:point to different phys addr
Cells: Device Namespaces
22
VP 1
Framebuffer
VP 2
backgroundforeground
Slides © 2011 Jeremy C. Andrus <[email protected]>
screen memory
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Accelerated Graphics
MMU
context
VP 2
OpenGL
VP 1
context
OpenGL OpenGL
context
VP 3
graphics virtual addressesphysical addresses
23
Framebuffer
GPU
VP: just a setof processes!
process isolation
Slides © 2011 Jeremy C. Andrus <[email protected]>
GPUMMU graphics virtual addresses
physical addresses
screen memory
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Device Namespace + Graphics Context
context
VP 2
OpenGL
VP 1
context
OpenGL OpenGL
context
VP 3
background
24
foreground background
Slides © 2011 Jeremy C. Andrus <[email protected]>
LinuxKernel
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Drivers
Baseband: GSM / CDMA
RilD
VoIP?
VoIP VoIPVendor RIL
25
Slides © 2011 Jeremy C. Andrus <[email protected]>
LinuxKernel
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
GSM/CDMA
RilD
Dual-SIM?
Vendor RIL
26
GSM / CDMA
Drivers Drivers
RilD
Vendor RIL
Slides © 2011 Jeremy C. Andrus <[email protected]>
Root Namespace
LinuxKernel
vendor API
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Drivers
Baseband: GSM / CDMA
Cells RIL
RilD
VP 2
Cells RIL
RilD
VP 1
RilD
Cells RIL
VP 3Cells: User-Level Namespace Proxy
backgroundbackgroundforeground
Vendor RIL
proprietary hardware/software requires a well-defined interface.
27
CellD
Slides © 2011 Jeremy C. Andrus <[email protected]>
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Experimental ResultsSetup
• Nexus S• five virtual phones
• overhead vs. stock 〈Android 2.3〉
28
Slides © 2011 Jeremy C. Andrus <[email protected]>
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Experimental ResultsSetup
• CPU 〈Linpack〉
• graphics 〈Neocore〉
• storage 〈Quadrant〉
• web browsing 〈Sun Spider〉
• networking 〈Custom WiFi Test〉
29
Slides © 2011 Jeremy C. Andrus <[email protected]>
Runtime Overhead
0.00!
0.20!
0.40!
0.60!
0.80!
1.00!
1.20!
1.40!
Linpack NeoCore Quadrant I/O
Sun Spider
Network
1-VP! 2-VP! 3-VP! 4-VP! 5-VP!Negligible
Overhead In 3D Measurements!
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
Experimental Results
30
Slides © 2011 Jeremy C. Andrus <[email protected]>
Demo
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
31
Slides © 2011 Jeremy C. Andrus <[email protected]>
EvaluationOverview Graphics Cell Radio DemoMotivation Architecture
• device namespaces‣ safely and efficiently share devices
• foreground / background‣ designed specifically for mobile devices
• implemented on Android• less than 2% overhead on Nexus S
CellsComplete, Efficient, Transparent
Mobile Virtualization
32