MultiDroid: A Novel Solution to Consolidate Interactive Physical

To save the total cost of ownership, this presentation presents MultiDroid, a container based virtualization architecture running multiple standalone Android clients simultaneously with native hardware device performance and UI experience on a single physical device in an isolated and secure manner. A prototype of MultiDroid that runs three real clients on a single Intel platform has been implemented and performance data demonstrates that Multi-Droid imposes only minor runtime over-head.

1.MultiDroid: A Novel Solution to Consolidate Interactive Physical Android Clients on One Single Computing Platform Bin Yang Intel R&D Center Shoumeng, Yan Intel Labs

2.Agenda • Background and Scenarios • Solution • Evaluation • Summary and Next

3.Background • Leverage computing power of modern CPU to consolidate workloads • Requirements come from different scenarios such as Retail, Automotive and Game cloud.

4.Scenario: Rear Seat Entertainment • HVAC • Video • Music • Game • Map • Conference

5.Scenario: Cloud Gaming

6.Scenario: Robot

7.Scenario: Auto Vending Machine

8.Solution - MultiDroid • Solutions Comparing • Architecture • Advantages • Implementation

9.Solutions Comparing MultiDroid

10.Architecture Hdmi Cable Hdmi Cable Hdmi Cable Hdmi Cable USB Cable USB Cable USB Cable USB Cable Hdmi Hdmi port port Signal splitter Chips Hdmi USB Hdmi USB USB USB port port port port port Hdmi port port User space Instance OS OS OS OS Mgr instance1 instance2 instance3 instance4 Kernel SoC Platform USB Display Sensor CPU GPU Ethernet Controller Controller Chip

11.Advantages • Lightweight • Supports different Linux-based OS • Little overhead. • Simple I/O sharing solution. • Recovery mechanism • Security Guarantee • Easy Deployment & Maintenance

12.Implementation: MultiDroid • File System Layout • Kernel • I/O Devices Virtulization • AOSP

13.File System Layout • Different data partitions for different Android instances. • system.img is shared between different Android instances. • Overlay fs can be used if different system.img is required.

14.Kernel - Binder Instance 1 Instance 2 Instance N Full Android Full Android Full Android user space stack user space stack user space stack /dev/binder /dev/binder /dev/binder /dev/binder1 /dev/binder2 /dev/binder(n) Kernel

15.I/O Devices Virtulization • Dedicated I/O devices e.g. Usb Host • Shared I/O devices e.g. GFX, Trusty

16.I/O - USB Touch Instance 1 Instance 2 Instance N Full Android Full Android Full Android user space stack user space stack user space stack /dev/input /dev/input /dev/input /dev/input0 /dev/input1 /dev/input(n-1) Kernel

17.I/O – GFX and Display Android Instance N Android Instance 1 SurfaceFlinger MultiDroid Composer(MDC) Gralloc vHAL HWComposer vHAL OpenGL Android X11 Wayland DRM backend Gralloc ES backend backend backend GPU Driver Display Driver Kernel

18.I/O - Trusty Android Instance N Trusty OS Android Instance 1 KeyMaster Security Security Security Storage KeyMaster Storage Storage Daemon GateKeeper APP1 APP2 GateKeeper IPC RPMB Storage Trusty IPC Trusty IPC Driver Drvier Driver Driver Kernel RPMB AuthKey

19.AOSP • Low memory Killer • Recovery

20.Low Memory Killer Android Instance 1 Android Instance N Process A Process A AMS AMS Process B Process B LMKD LMKD Update adj Update adj with weight with weight Send kill event Process A in Ins1 Process B in Ins1 Select Select to-be-killed Process A in Ins2 Module process according to adj Process B in Ins2 Memory monitor Kernel

21.Recovery Instance 1 Instance N process process process process process process Child process will Child process will Child process Child process send signal to init send signal to init will restart will restart before it is exit before it is exit process process Init process Init process Monitor init process Instance Manager watchDog

22.Evaluation • Environment setup • Evaluation result

23.Evaluation Setup • Exclusive test: single active instance while multiple instances are created but in idle state • Concurrent test: system performance where multiple instances run with continuous workload simultaneously • Memory consumption Hardware: Intel mini Kaby Lake PC Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz *2 /HDMI display and touch Software: Android 7.1.2

24.Result Exclusive : Antutu 1.20 Cold Boot 1.00 1.00 1.00 1.00 0.99 1.00 0.76 0.76 0.80 0.80 0.60 0.60 0.40 0.40 0.20 0.20 0.00 0.00 1 4 8 1 4 8 Memory Consumed(GB) Concurrent: Game FPS 14000000 70 12.8 60 60 12000000 60 10000000 50 40 36 8000000 30 6000000 6.4 20 4000000 3.67 10 2000000 2.3 0 1.4 1 4 8 0 0 5 10 15 20

25.Summary • Raised the idea to consolidate workloads using container technology. • Designed simple I/O sharing solution. • Implemented POC to consolidate 16 Android Instances in KabyLake Nuc.

26.Next • Enhance security. • Optimize boot time and memory usage. • Integrate different Linux based OS in one platform. • Explore the possibility to integrate with VM solution.