![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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/1.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/2.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/3.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/4.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/5.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/6.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/7.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/8.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/9.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/10.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/11.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/12.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/13.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/14.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/15.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/16.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/17.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/18.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/19.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/20.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/21.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/22.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/23.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/24.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/25.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/26.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/27.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/28.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/29.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/30.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/31.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/32.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/33.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/34.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/35.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/36.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/37.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/38.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/39.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/40.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/41.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/42.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/43.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/44.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/45.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/46.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/47.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/48.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/49.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/50.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/51.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/52.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/53.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/54.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/55.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/56.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/57.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/58.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/59.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/60.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/61.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/62.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/63.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/64.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/65.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/66.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/67.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/68.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/69.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/70.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/71.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/72.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/73.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/74.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/75.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/76.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/77.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022050405/5f82aff3eeae85790f67f0b1/html5/thumbnails/78.jpg)
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