Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw...

78
Drowsy Power Management Matthew Lentz James Litton Bobby Bhattacharjee University of Maryland

Transcript of Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw...

Page 1: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Matthew Lentz James Litton Bobby BhattacharjeeUniversity of Maryland

Page 2: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Background Energy Consumption

Fetch Remote Data Communicate with Nearby Device(s) Receive Push Notification Sample Sensor(s) . . .

Mobile devices consume energy without human-interaction

Many (periodic) short-lived events executed:

Page 3: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Power Trace with Events

Page 4: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Power Trace with Events

EventEvent

Event = Pull data from remote server over WiFi

Page 5: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Power Management States

Suspend

Off

On

System in low-power state Memory retains contents

Event

Page 6: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Power Management StatesOnOn

Suspend

Off

On

System in low-power state Memory retains contents

Event

Page 7: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend

Power Management StatesOnOn

Suspend

Off

On

System in low-power state Memory retains contents

Event

Page 8: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend

Power Management States

WiFi Controller Power-Save Mode

… …

OnOn

Suspend

Off

On

System in low-power state Memory retains contents

Event

Page 9: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend

Power Trace with EventsOnOn

EventEvent

Page 10: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend

Power Trace with EventsOnOn

EventEvent

Page 11: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

What Happens During a Wakeup?

Page 12: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

What Happens During a Wakeup?

Interrupt (from RTC Alarm)

Page 13: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend→On

What Happens During a Wakeup?

Interrupt (from RTC Alarm)

Page 14: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

What Happens During a Wakeup?

Suspend→On Event

Interrupt (from RTC Alarm)

Page 15: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

What Happens During a Wakeup?

Suspend→On Event

Objects held by applications and drivers When all locks released, can enter Suspend

Wakelocks

Interrupt (from RTC Alarm)

Page 16: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

What Happens During a Wakeup?

Suspend→On Event

Interrupt (from RTC Alarm)

Page 17: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

What Happens During a Wakeup?

Suspend→On Event On→Suspend

Interrupt (from RTC Alarm)

Page 18: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

What Happens During a Wakeup?Acquire wakelockFetch update over WiFiSet future wakeup alarmRelease wakelock

Suspend→On Event On→Suspend

Interrupt (from RTC Alarm)

Page 19: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions are InefficientTransitions account for 75% of total energy consumption!

Suspend→On Event On→Suspend

Page 20: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions are InefficientTransitions account for 75% of total energy consumption!

Transitions for Other Events

RTC Alarm (ALM)Bluetooth Connection (BT2)

Push Notification (PSH)Sample Accelerometer (SEN)

85%32%

23%89%

Suspend→On Event On→Suspend

Page 21: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions are InefficientTransitions account for 75% of total energy consumption!

Suspend→On Event On→Suspend

Page 22: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

On → Suspend

Page 23: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

On → Suspend

Flush filesystem buffers Freeze all tasks Suspend all devices Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

* Wait for interrupt

5

*

1 2 345

Page 24: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

On → Suspend

Flush filesystem buffers Freeze all tasks Suspend all devices Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

* Wait for interrupt

5

*

1 2 3452 3

2

3

Page 25: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend → On

Page 26: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend → On

Enable CPUs Resume all devices Thaw all tasks

1

2

3

2 31

Page 27: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Suspend → On

Enable CPUs Resume all devices Thaw all tasks

1

2

3

2 31

2

3

2 3

Page 28: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Wake up only what is necessary

Page 29: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Wake up only what is necessary

{ }Necessary for Pull Data:

Page 30: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Wake up only what is necessary

{ }Necessary for Pull Data: Alarm Device WiFi Device

System ServicesApplicationa

Page 31: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Wake up only what is necessary

{ }Necessary for Pull Data: Alarm Device WiFi Device

System ServicesApplicationa

{ }Unnecessary:USB Device

SD Card Device

Calendar App

Bluetooth Device

Power Regulator Devices

Power Regulators

Input Devices

Battery Monitoring Device

Page 32: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Construct minimal “wake set” of tasks and devices

Page 33: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Construct minimal “wake set” of tasks and devices

Smallest set that maintains correct behavior

Page 34: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Construct minimal “wake set” of tasks and devices

Expand on-demand as event progresses

Smallest set that maintains correct behavior

Page 35: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Power Management

Constraint: No modifications to user-space

Construct minimal “wake set” of tasks and devices

Expand on-demand as event progresses

Smallest set that maintains correct behavior

Page 36: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions To/From Drowsy

Suspend

Drowsy

Resume all devices Enable CPUs

3

2

1

Flush filesystem buffers

Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

5

Freeze all tasks Suspend all devices

Thaw all tasks

Page 37: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions To/From Drowsy

Suspend

Drowsy

Resume all devices Enable CPUs

3

2

1

Flush filesystem buffers

Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

5

3

2

Freeze all tasks Suspend all devices

Thaw previously running tasks

Page 38: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions To/From Drowsy

Suspend

Drowsy

Resume all devices Enable CPUs

3

2

1

Flush filesystem buffers

Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

5

3

2

Freeze all tasks Suspend all devices

Thaw previously running tasks

On CPU or Run Queue

Page 39: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions To/From Drowsy

Suspend

Drowsy

Resume all devices Enable CPUs

3

2

1

Flush filesystem buffers

Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

5

3

2

Freeze all tasks Suspend all devices

Wake Set = { <Prev. Running Tasks> }

Thaw previously running tasks

Page 40: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions To/From Drowsy

Suspend

Drowsy

Resume all devices Enable CPUs

3

2

1

Flush filesystem buffers

Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

5

3

2

Freeze all tasks Suspend all devices

Thaw previously running tasks

Wake Set = { <Prev. Running Tasks> }

Page 41: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions To/From Drowsy

Suspend

Drowsy

Resume all devices Enable CPUs

3

2

1

Flush filesystem buffers

Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

5

3

2

Freeze all tasks Suspend all devices

Thaw previously running tasks

Wake Set = { <Prev. Running Tasks> }

Wake Set = { <Prev. Running Tasks>, Task }

Wake Set = { <Prev. Running Tasks>, Task, Device, … }

Page 42: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Transitions To/From Drowsy

Suspend

Drowsy

Resume all devices Enable CPUs

3

2

1

Flush filesystem buffers

Disable non-boot CPUs Set RAM to self-refresh

1

2

3

4

5

3

2

2

3

Freeze tasks in wake set Suspend devices in wake set

Thaw previously running tasks

Wake Set = { <Prev. Running Tasks> }

Wake Set = { <Prev. Running Tasks>, Task }

Wake Set = { <Prev. Running Tasks>, Task, Device, … }

Page 43: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake Set

Task A

Tim

e

ioctl() command to device

open() named pipe

read() from pipe

Run (I/O)Run (CPU) Run (Device I/O)Task States:

Page 44: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake SetBlocked

Blocks waiting on condition to be met

Run (I/O)Run (CPU) Run (Device I/O)Task States:

Task A

Tim

e

open() named pipe

read() from pipe

Page 45: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

ioctl() command to deviceioctl()

Constructing the Wake Set

Task B Task A

Satisfies

condition

BlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Tim

e

write() to pipe

Blocks waiting on condition to be met

open() named pipe

read() from pipe

Page 46: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

ioctl() command to deviceioctl()

Constructing the Wake Set

Task B Task A

Satisfies

condition

BlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Tim

e

write() to pipe

Blocks waiting on condition to be met

open() named pipe

read() from pipe

Page 47: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake SetFrozenBlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Tim

e

Task B Task A

Suspended

Page 48: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake SetFrozenBlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Tim

e

Task B Task A

Suspended

Transition to Suspend (All wakelocks released)

Page 49: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake SetFrozenBlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Tim

e

Task B Task A

Suspended

Transition to Suspend (All wakelocks released)

Transition to Drowsy

Page 50: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake Set

Wake Set =

{ Task B, Task A }

{ Task B, Task A, Device }

Task B Task A

Tim

e

FrozenBlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Suspended

Page 51: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake Set

Wake Set =

{ Task B, Task A }

{ Task B, Task A, Device }

Task B Task A

Tim

e

{ Task B }

FrozenBlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Suspended

Page 52: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake Set

Wake Set =

{ Task B, Task A }

{ Task B, Task A, Device }

Task B Task A

Tim

e

{ Task B }

FrozenBlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Suspended

Page 53: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Constructing the Wake Set

Wake Set =

{ Task B, Task A }

{ Task B, Task A, Device }

Task B Task A

Tim

e

{ Task B }

FrozenBlockedRun (I/O)Run (CPU) Run (Device I/O)Task States:

Suspended

Page 54: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Wake Set: Pull Data

IRQ 48

msm-ssbi.0

IRQ 362 IRQ 479

platform rtc-pm8xxx

/dev/alarm AlarmManager ActivityManager

Benchmark

binder

log_main wlan0

PowerManager

pm8921-coremsmgpio rtc0

alarm

wcnss_wlan.0

mpdecision Worker

Compiler

cpu1

cpu2

cpu3

Binder_1 Binder_1 Binder_2

Binder_3

Binder_4

ServerThread

flush-179:0

flush-0:17

Time (ms)

cpu

0 ms 4 ms 6 ms 26 ms 41 ms 91 ms 98 ms13 ms

DeviceTask Wakeup Chained IRQIRQ

Resume(Thaw Running Tasks)

Suspend(Sync Filesystem Buffers)

IRQ 48

msm-ssbi.0

IRQ 362 IRQ 479

platform rtc-pm8xxx

/dev/alarm AlarmManager ActivityManager

Benchmark

binder

log_main wlan0

PowerManager

pm8921-coremsmgpio rtc0

alarm

wcnss_wlan.0

mpdecision Worker

Compiler

cpu1

cpu2

cpu3

Binder_1 Binder_1 Binder_2

Binder_3

Binder_4

ServerThread

flush-179:0

flush-0:17

Time (ms)

cpu

0 ms 4 ms 6 ms 26 ms 41 ms 91 ms 98 ms13 ms

DeviceTask Wakeup Chained IRQIRQ

Resume(Thaw Running Tasks)

Suspend(Sync Filesystem Buffers)

Page 55: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Wake Set: Pull Data

IRQ 48

msm-ssbi.0

IRQ 362 IRQ 479

platform rtc-pm8xxx

/dev/alarm AlarmManager ActivityManager

Benchmark

binder

log_main wlan0

PowerManager

pm8921-coremsmgpio rtc0

alarm

wcnss_wlan.0

mpdecision Worker

Compiler

cpu1

cpu2

cpu3

Binder_1 Binder_1 Binder_2

Binder_3

Binder_4

ServerThread

flush-179:0

flush-0:17

Time (ms)

cpu

0 ms 4 ms 6 ms 26 ms 41 ms 91 ms 98 ms13 ms

DeviceTask Wakeup Chained IRQIRQ

Resume(Thaw Running Tasks)

Suspend(Sync Filesystem Buffers)

IRQ 48

msm-ssbi.0

IRQ 362 IRQ 479

platform rtc-pm8xxx

/dev/alarm AlarmManager ActivityManager

Benchmark

binder

log_main wlan0

PowerManager

pm8921-coremsmgpio rtc0

alarm

wcnss_wlan.0

mpdecision Worker

Compiler

cpu1

cpu2

cpu3

Binder_1 Binder_1 Binder_2

Binder_3

Binder_4

ServerThread

flush-179:0

flush-0:17

Time (ms)

cpu

0 ms 4 ms 6 ms 26 ms 41 ms 91 ms 98 ms13 ms

DeviceTask Wakeup Chained IRQIRQ

Resume(Thaw Running Tasks)

Suspend(Sync Filesystem Buffers)

Page 56: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Wake Set: Pull Data

IRQ 48

msm-ssbi.0

IRQ 362 IRQ 479

platform rtc-pm8xxx

/dev/alarm AlarmManager ActivityManager

Benchmark

binder

log_main wlan0

PowerManager

pm8921-coremsmgpio rtc0

alarm

wcnss_wlan.0

mpdecision Worker

Compiler

cpu1

cpu2

cpu3

Binder_1 Binder_1 Binder_2

Binder_3

Binder_4

ServerThread

flush-179:0

flush-0:17

Time (ms)

cpu

0 ms 4 ms 6 ms 26 ms 41 ms 91 ms 98 ms13 ms

DeviceTask Wakeup Chained IRQIRQ

Resume(Thaw Running Tasks)

Suspend(Sync Filesystem Buffers)

IRQ 48

msm-ssbi.0

IRQ 362 IRQ 479

platform rtc-pm8xxx

/dev/alarm AlarmManager ActivityManager

Benchmark

binder

log_main wlan0

PowerManager

pm8921-coremsmgpio rtc0

alarm

wcnss_wlan.0

mpdecision Worker

Compiler

cpu1

cpu2

cpu3

Binder_1 Binder_1 Binder_2

Binder_3

Binder_4

ServerThread

flush-179:0

flush-0:17

Time (ms)

cpu

0 ms 4 ms 6 ms 26 ms 41 ms 91 ms 98 ms13 ms

DeviceTask Wakeup Chained IRQIRQ

Resume(Thaw Running Tasks)

Suspend(Sync Filesystem Buffers)

15 tasks thawed & 16 devices resumed

1.8% 1.9%

Page 57: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Implementation

Implemented Drowsy within Android kernel

Platform: Google Nexus 4 (“Mako”)

SLOC: ~4,600

Version: 4.2.2 (Fork of Linux 3.4)

Page 58: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Instrumenting Android

For determining when to add tasks/devices to wake set

Page 59: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Instrumenting Android

For determining when to add tasks/devices to wake set

Page 60: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Example: file_operations

.open = &drv_open

.read = &drv_read

.write = &drv_write

struct file_operations d_fops:

Page 61: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Example: file_operations

.open = &drv_open

.read = &drv_read

.write

.write_impl = &drv_write= &drowsy_write

struct file_operations d_fops:

Page 62: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Example: file_operations

.open = &drv_open

.read = &drv_read

.write

.write_impl = &drv_write= &drowsy_write

struct file_operations d_fops:

int drowsy_write(File *f, …) Device *d = fileToDevice(f) if(d!state == Suspended)

resumeDevice(d)

f!f_ops.write_impl(f, …)

Page 63: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Evaluation: Benchmarking

Handle I/O Event

Acquire Wakelock

Suspend

Release Wakelock

Suspend

Set a future wakeup alarm Accept incoming Bluetooth connection Fetch weather update (and set alarm) Receive incoming push notification Sample the accelerometer (and set alarm)

ALM BT2 PUL PSH SEN

→On →Drowsy

On→ Drowsy→

Page 64: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Evaluation: Measurement

V Pho

neI Ph

one

IPhone = VShunt / RShunt Time

Page 65: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Evaluation: Measurement

V Pho

neI Ph

one

IPhone = VShunt / RShunt Time

Page 66: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Evaluation: Measurement

V Pho

neI Ph

one

V Pho

toIPhone = VShunt / RShunt Time

Page 67: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Evaluation: MeasurementLED Toggled On

(Software Timestamp)

V Pho

neI Ph

one

V Pho

toIPhone = VShunt / RShunt Time

Page 68: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Improvement: Wakeup Events (1 Core, Powersave)

Plus (1 Core, Powersave) Plus

Page 69: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Improvement: Wakeup Events

Drowsy is 1.5-5x as energy efficient

(1 Core, Powersave) Plus (1 Core, Powersave) Plus

Page 70: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Improvement: Wakeup Events

cpuidle entered deep idle states more often

in the Drowsy state

Drowsy is 1.5-5x as energy efficient

(1 Core, Powersave) Plus (1 Core, Powersave) Plus

Page 71: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Improvement: Wakeup Events (1 Core, Powersave)

Plus (1 Core, Powersave) Plus

Page 72: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Wakeup Cycle: Pull DataAndroid Event

Suspend→OnOn→Suspend

Page 73: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Event & Wake Set

Suspend

Drowsy

Drowsy

Suspend

Wakeup Cycle: Pull DataAndroid Event

Suspend→OnOn→Suspend

Page 74: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Drowsy Event & Wake Set

Suspend

Drowsy

Drowsy

Suspend

Wakeup Cycle: Pull DataAndroid

WiFi Tail Energy

Event

Suspend→OnOn→Suspend

Page 75: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Improvement: Battery Life

Page 76: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Improvement: Battery Life

Converges to 0% as the interval increases

Page 77: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Improvement: Battery Life

Converges to 0% as the interval increases

Benefits of Drowsy aggregate across all

applications on device

Page 78: Drowsy Power Management - University Of Marylandmlentz/papers/drowsy_sosp2015_slides.pdfResume (Thaw Running Tasks) Suspend (Sync Filesystem Buffers) IRQ 48 msm-ssbi.0 IRQ 362 IRQ

Summary

Source code is available at:

www.cs.umd.edu/projects/drowsy/

Drowsy wakes up the minimal set of tasks and devicesis 1.5 - 5x as energy efficient for short-lived events

Existing power management not optimized for short-lived events