Top Banner
Energy Management in the Cinder Operating System Controlling energy allocation is crucial feature for mobile OS's Introduces abstraction of reserves and taps Modification of HiStar OS running on ARM processor (Android G1) Used to achieve 3 properties of control o Isolation o Delegation o Subdivision 1
51

Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Dec 17, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Energy Management in the Cinder Operating System

– Controlling energy allocation is crucial feature for mobile OS's

– Introduces abstraction of reserves and taps        – Modification of HiStar OS running on ARM processor

(Android G1)

• Used to achieve 3 properties of controlo Isolationo Delegationo Subdivision

1

Page 2: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.
Page 3: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.
Page 4: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.
Page 5: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.
Page 6: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.
Page 7: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.
Page 8: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.
Page 9: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Smart Phone Virtualization: on Servers/PCs

Bluestacks (Demo)MegaDroid• Off-the-shelf PCs emulates a town of

300,000 Android phones – Emulate cellular and GPS behavior

• Usage: – Tracing the wider effects of natural disasters– Hacking attempts– Software bugs– Assist real phone (e.g. offload computation,

virus check)• Video:

http://www.engadget.com/2012/10/03/sandia-labs-megadroid-project-simulates-300-000-android-phones/

Page 10: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Smart Phone Virtualization: on Devices

Cells video: http://www.youtube.com/watch?v=i_F92AS9a6s

Page 11: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Personal Phone

Business Phone

Developer Phone

Children’s Phone

Courtesy: Jason Nieh et al.

Page 12: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Bare-Metal Hypervisor

OSKernel

OSKernel

OSKernel

Hypervisor / VMM

Hardware

Server Virtualization

poor device support / sharing

Courtesy: Jason Nieh et al.

Page 13: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

OSOS

Host OS Kernel

OS

Hypervisor / VMM

Hosted HypervisorDesktop Virtualization

kernelmodule

Hardware

host user space

poor device performance

emulateddevices

Courtesy: Jason Nieh et al.

Page 14: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

OS Kernel

User Space SDKNon-Virtualization

no standard appsless secure custom user

space API for isolated apps

Hardware

Courtesy: Jason Nieh et al.

Page 15: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

• device diversity

• mobile usage model

➡ graphics-accelerated UI

Key Challenges

Power Buttons

WiFi

GPS

Cell Radio FramebufferGPU

Binder IPC

Touchscreen

Accelerometer

Compasspmem

microphone headset

speakerscamera(s)

h.264 accel.

RTC / Alarms

Courtesy: Jason Nieh et al.

Page 16: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

CellsKey Observation

large: lots of windows/apps

small:

one app at a time

Courtesy: Jason Nieh et al.

Page 17: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

LinuxKernel

•••

VP 3VP 2VP 1Single Kernel: Multiple VPs

virtualize at OS interface

isolated collectionof processes

Courtesy: Jason Nieh et al.

Page 18: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

LinuxKernel

•••

Single Kernel: Device Support

Power

Cell Radio

Binder IPC

Accelerometer

Compass

pmem

speakerscamera(s)

hw codec

RTC / Alarms

VP 3VP 2VP 1

ButtonsWiFi GPS

FramebufferGPU

Touchscreen microphone headset

Courtesy: Jason Nieh et al.

Page 19: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

LinuxKernel

•••

Single Kernel: Device Supportall VPs access the same device simultaneously

VP 3VP 2VP 1

•••

Sens

ors

Inpu

t

Andr

oid.

..

Audi

o/Vi

deo

RTC

/ Al

arm

s

WiF

i

Cell

Radi

o

Fram

ebuff

er

Pow

er

GPU

Courtesy: Jason Nieh et al.

Page 20: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

LinuxKernel

Pow

erWiF

i

Cell

Radi

o

Fram

ebuff

er

GPU

RTC

/ Al

arm

s

•••

Sens

ors

Inpu

t

Andr

oid.

..

Audi

o/Vi

deo

•••

Device Namespacessafely, correctly multiplex access to devices

device namespaces

VP 3VP 2VP 1

Courtesy: Jason Nieh et al.

Page 21: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Cells

+

device namespaces

foreground/ background

=

Complete, Efficient, TransparentMobile Virtualization

Courtesy: Jason Nieh et al.

Page 22: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

LinuxKernel

Pow

erWiF

i

Cell

Radi

o

Fram

ebuff

er

GPU

RTC

/ Al

arm

s

•••

Sens

ors

Inpu

t

Andr

oid.

..

Audi

o/Vi

deo

GPU

Fram

ebuff

erdevice namespaces

Cell

Radi

o

efficient basic graphics virtualization

hardware accelerated graphics

proprietary/closed interface

Courtesy: Jason Nieh et al.

Page 23: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

virtual addressesphysical addresses

screen memory

Approach 1: Single Assignment

Framebuffer

Courtesy: Jason Nieh et al.

Page 24: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Framebuffer virtual state

screen memory

Approach 2: Emulated Hardware

emulated framebuffer

Courtesy: Jason Nieh et al.

Page 25: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

virtual addresses

physical addressesmux_fb

screen memory

VP 3

backgroundmux_fb presentsidentical deviceinterface to all VPsusing device namespaces

swap virt addr mappings:point to different phys addr

Cells: Device NamespacesVP 1

Framebuffer

VP 2

backgroundforeground

Courtesy: Jason Nieh et al.

Page 26: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

screen memory

Accelerated Graphics

MMU

context

VP 2

OpenGL

VP 1

context

OpenGL OpenGL

context

VP 3

graphics virtual addresses

physical addresses

Framebuffer

GPU

VP: just a setof processes!

process isolation

Courtesy: Jason Nieh et al.

Page 27: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

GPUMMU graphics virtual addresses

physical addresses

screen memory

Device Namespace + Graphics Context

context

VP 2

OpenGL

VP 1

context

OpenGL OpenGL

context

VP 3

backgroundforeground background

Courtesy: Jason Nieh et al.

Page 28: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

LinuxKernel

Drivers

Baseband: GSM / CDMA

RilD

Vendor RIL VoIP VoIP

VoIP?

Courtesy: Jason Nieh et al.

Page 29: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

LinuxKernel

GSM/CDMA

RilD

Dual-SIM?

Vendor RIL

GSM / CDMA

Drivers Drivers

RilD

Vendor RIL

Courtesy: Jason Nieh et al.

Page 30: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Root Namespace

LinuxKernel

vendor API

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.

CellD

Courtesy: Jason Nieh et al.

Page 31: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

More Info

cellrox.comcells.cs.columbia.edu

Courtesy: Jason Nieh et al.

Page 32: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Revisiting Storage for Smartphones

Hyojun Kim Cristian UngureanuNitin Agrawal

Page 33: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Understanding Mobile Performance

• Network performance can impact user experience– 3G often considered the bottleneck for apps like browsing– Service providers heavily investing in 4G and beyond

• CPU and graphics performance crucial as well– Plenty of gaming, video, flash-player apps hungry for

compute– Quad-core CPUs, GPUs to appear on mobile devices

• Does storage performance impact mobile experience?– For storage, vendors & consumers mostly refer to capacity

Well understood!

Not well understood!

Courtesy: Nitin Agrawal et al.

Page 34: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Wireless Network Throughput Progression

• Flash storage on mobile performs better than wireless networks• Most apps are interactive; as long as performance exceeds that of

the network, difficult for storage to be bottleneck

Standard (theoretical)

Mobile Flash

802.11 a/g3G

Measured in Lab

Courtesy: Nitin Agrawal et al.

Page 35: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Introduction

Why storage is a problem

Android storage background and setup

Experimental results

Solutions

Outline

Courtesy: Nitin Agrawal et al.

Page 36: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Why Storage is a Problem

• Performance for random I/O significantly worse than seq; inherent with flash storage

• Mobile flash storage classified into speed classes based on sequential throughput

Random write performance is orders of magnitude worse

Vendor(16GB)

Speed Class

Cost US $

Seq Write

Rand Write

Transcend 2 26 4.2 1.18RiData 2 27 7.9 0.02Sandisk 4 23 5.5 0.70Kingston 4 25 4.9 0.01Wintec 6 25 15.0 0.01A-Data 6 30 10.8 0.01Patriot 10 29 10.5 0.01PNY 10 29 15.3 0.01

Consumer-grade SD performance

Perf

orm

ance

MB/

s

However, we find that for several popular apps, substantialfraction of I/O is random writes (including web browsing!)

Random versus Sequential Disparity

Courtesy: Nitin Agrawal et al.

Page 37: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

• Storage coming under increasingly more scrutiny in mobile usage– Random I/O performance has not kept pace with network improvements– 802.11n (600 Mbps peak) and 802.11ad (7 Gbps peak) offer potential for

significantly faster network connectivity to mobile devices in the future

Mobile Flash Rand

Shifting Performance BottlenecksWhy Storage is a Problem

Standard (theoretical)

Mobile Flash Seq

802.11 A/G3G

Measured in Lab

Courtesy: Nitin Agrawal et al.

Page 38: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Deconstructing Mobile App Performance• Focus: understanding contribution of storage

– How does storage subsystem impact performance of popular and common applications on mobile devices?

– Performed analysis on Android for several popular apps

• Several interesting observations through measurements– Storage adversely affects performance of even interactive apps,

including ones not thought of as storage I/O intensive– SD Speed Class not necessarily indicative of app performance– Higher total CPU consumption for same activity when using

slower storage; points to potential problems with OS or apps

• Improving storage stack to improve mobile experience

Courtesy: Nitin Agrawal et al.

Page 39: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Introduction

Why storage is a problem

Android storage background and setup

Experimental results

Solutions

Outline

Courtesy: Nitin Agrawal et al.

Page 40: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Storage Partitions on Android

/systemyaffs2

145MBread-only

/cacheyaffs295MB

read write

/datayaffs2

196.3MBread write

Internal NAND Flash Memory (512MB)

/sdcardFAT3216GB

read write

/misc

896KBsettings

/recoveryrootfs4MB

alternate boot

/bootrootfs3.5MBkernel

External SD

Partition Function

Misc H/W settings, persistent shared space between OS & bootloader

Recovery Alternative boot-into-recovery partition for advanced recovery

Boot Enables the phone to boot, includes the bootloader and kernel

System Contains the remaining OS, pre-installed system apps ; read-only

Cache Used to stage and apply “over the air” updates; holds system images

Data Stores user data (e.g., contacts, messages, settings) and installed apps; SQLite DB containing app data also stored here. Wiped on factory reset

Sdcard External SD card partition to store media, documents, backup files etc

Sd-ext Non-standard partition on SD card that can act as data partitionCourtesy: Nitin Agrawal et al.

Page 41: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Custom Experimental Setup• Ability to compare app performance on different storage devices

– Several apps heavily use the internal non-removable storage– To observe and measure all I/O activity, we modified Android’s init process to

mount all internal partitions on SD card– Measurement study over the internal flash memory and 8 external SD cards,

chosen 2 each from the different SD speed classes

• Observe effects of shifting bottlenecks w/ faster wireless networks– But, faster wireless networks not available on the phones of today – Reverse Tethering to emulate faster networks: lets the smartphone access the

host computer’s internet connection through a wired link (miniUSB cable)

• Instrumentation to measure CPU, storage, memory, n/w utilization• Setup not typical but allows running what-if scenarios with storage

devices and networks of different performance characteristics

Requirements beyond stock Android

Courtesy: Nitin Agrawal et al.

Page 42: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Apps and Experiments PerformedWebBench

BrowserVisits 50 websitesBased on WebKitUsing HTTP proxy server

App InstallTop 10 apps on Market

App LaunchGames, Weather, YouTubeGasBuddy, Gmail, Twitter, Books, Gallery, IMDB

RLBench SQLiteSynthetic SQL benchmark

Facebook

Android Email

Google Maps

Pulse News Reader

BackgroundApps: Twitter, Books, GmailContacts, Picasa, Calendar Widgets: Pulse, YouTube,News, Weather, Calendar,Facebook, Market, Twitter

Courtesy: Nitin Agrawal et al.

Page 43: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Introduction

Why storage is a problem

Android storage background and setup

Experimental results (talk focuses on runtime of apps)Paper has results on I/O activity, CPU, App Launch behavior, etc

Solutions

Outline

Courtesy: Nitin Agrawal et al.

Page 44: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

WebBench Results: Runtime

Runtime on WiFi varies by 2000% between internal and Kingston • Even with repeated experiments, with new cards across speed classes

Even without considering Kingston, significant performance variation (~200%)Storage significantly affects app performance and consequently user experienceWith a faster network (USB in RT), variance was 222% (without Kingston)

With 10X increase in N/W speed, hardly any difference in runtime

Time taken for iPerf to download 100MB

WiFi

USB

Series10

20

40

60

80

100

Tim

e (s

)

Inte

rnal

Trans

...

RiDat

a

Sandis

k

Kingst

on

Wint

ec

Adata

Patrio

tPNY

0500

1000150020002500300035004000

WIFI

Tim

e (s

eco

nd

s)

Courtesy: Nitin Agrawal et al.

Page 45: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Inte

rnal

Trans

cend

RiDat

a

Sandis

k

Wint

ec

Adata

Patrio

tPNY

0

100

200

300

400

500

600WIFIUSB

Tim

e (s

eco

nd

s)WebBench Results: Runtime

Runtime on WiFi varies by 2000% between internal and Kingston • Even with repeated experiments, with new cards across speed classes

Even without considering Kingston, significant performance variation (~200%)Storage significantly affects app performance and consequently user experienceWith a faster network (USB in RT), variance was 222% (without Kingston)

With 10X increase in N/W speed, hardly any difference in runtime

Time taken for iPerf to download 100MB

WiFi

USB

Series10

20

40

60

80

100

Tim

e (s

)

Courtesy: Nitin Agrawal et al.

Page 46: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Runtimes for Popular Apps (without Kingston)

We find a similar trend for several popular appsStorage device performance important, better card faster apps

Apart from the benefits provided by selecting a good flash device, are there additional opportunities for improvement in storage?

050

100150

FaceBook

050

100150200

Maps

0

10

20

30Email

0

200

400App Install

050

100150

RLBench

0

50

100Pulse News

Courtesy: Nitin Agrawal et al.

Page 47: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

WebBench: Sequential versus Random I/O

• Few reads, mostly at the start; significantly more writes• About 2X more sequential writes than random writes• Since rand is worse than seq by >> 2X, random dominates• Apps write enough randomly to cause severe performance drop

Paper has a table on I/O activity for other apps

I/O BreakdownVendor Seq:Rand

perf ratioRand IOPS

Transcend 4 302

Sandisk 8 179

RiData 395 5

Kingston 490 2.6

Wintec 1500 2.6

A-Data 1080 2.6

Patriot 1050 2.6

PNY 1530 2.6

Courtesy: Nitin Agrawal et al.

Page 48: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

How Apps Use Storage?• Exactly what makes web browsing slow on Android?

– Key lies in understanding how apps use SQLite and FS interface

/data/data/com.necla.webview

lib (empty)

cache

webviewCache

6aaa3f00, 03051d8d, …many files (5.5MB)

databases

webview.db (14KB)

webviewCache.db (129KB)

These files written to SQLite in sync

These files written to FS in write-behind

WebBench Storage Schema

Apps typically store some data in FS (e.g., cache files) and some in a SQLite database (e.g., cache map)– All data through SQLite is written synchronously slow!– Apps often use SQLite oblivious to performance effects

Courtesy: Nitin Agrawal et al.

Page 49: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Baseline Cache in RAM

DB in RAM All in RAM Disable fsync

0

100

200

300

400

500

600

Tim

e (s

eco

nd

s)

What-If Analysis for SolutionsWhat is the potential for improvements?–E.g., if all data could be kept in RAM?–Analysis to answer hypothetical questions

Placing Cache on Ramdisk does not improve perf.

much

DB on Ramdisk alone improves

perf. significantly

Both Cache and DB in RAM no

extra benefit

Both Cache and DB on SD without sync

recoups most perf

A. Web Cache in RAMB. DB (SQLite) in RAMC. All in RAMD. All on SD w/ no-sync

WebBench on RiData

A B C D

Courtesy: Nitin Agrawal et al.

Page 50: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.

Implications of Experimental Analysis

• Storage stack affects mobile application performance– Depends on random v/s sequential I/O performance

• Key bottleneck is ``wimpy’’ storage on mobile devices– Performance can be much worse than laptops, desktops– Storage on mobile being used for desktop-like workloads

• Android exacerbates poor storage performance through synchronous SQLite interface– Apps use SQLite for functionality, not always needing reliability– SQLite write traffic is quite random further slowdown!

• Apps use Android interfaces oblivious to performance– Browser writes cache map to SQLite; slows cache writes a lot

Courtesy: Nitin Agrawal et al.

Page 51: Energy Management in the Cinder Operating System –Controlling energy allocation is crucial feature for mobile OS's –Introduces abstraction of reserves.