Faster Resume For Energy
Savings
Savings on MeeGo
Yoshiya Hirase (*******.******@*****.***)
April 13, 2011
Agenda
Goal
Approach
Resume time optimizations
Movie 1
Early-screenshot for better user experience
Movie 2
Summary
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
2/17
Goal
Introduce hibernation to handset devices for more energy saving
[use-cases]
Turn off to maximize battery life while meeting, sleeping, etc
Start using instantly when out of the package
Keep using simple phone mode even under battery emergency
Recover application context after battery run out
Enable more power-off time
Three seconds for fast resume
Platform and application independent
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
3/17
Approach
Use TuxOnIce for hibernation
Make resume faster
Speed up boot sequence
Minimize snapshot image size
Implement as generic as possible
Resume process
Linux kernel start-up Restore system context
Bootloader
Time
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
4/17
Resume Process Breakdown
4.0% 2.2%
17.2%
0.6% 75.1%
0.9%
Nolo start-up
Linux kernel start-
TuxOnIce
up
Time
Boot loader
Snapshot image size: 23MB (70 % compression)
Platform: N900 (256MB SDRAM)
Snapshot image compression: LZO
Processor: TI OMAP 3430: ARM Cortex-A8 600 MHz
Boot device: eMMC mass storage
Linux kernel: 2.6.35 (MeeGO for N900) + patch sets
Resume time: about 10 seconds
- Suspend-To-Disk for ARM
- TuxOnIce for 2.6.35 kernel
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
5 /17
Shrink Snapshot Image Size
Page out as many pages as possible before suspend process starts
Take advantage of asymmetric aspect in user experience
Resume time is more important for user rather than suspend time
Restored with usual page-in mechanism after resume
Pros
Resume time not proportional to the number of running applications
Cons
Slower suspend process
Application responses might degrade after resume
Removing unnecessary memory area
Kernel text, data
DSPBridge buffer
Framebuffer data
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
6/17
How to shrink snapshot image
Reclaim pages in suspend process as much as possible
Modify mm/vmscan.c in order to reclaim pages aggressively
Execute shrink_all_memory repeatedly certain times
Remove kernel text & data: 4 MB (MeeGo 1.1 for N900, Linux 2.6.35)
Reload in kernel boot-up
Remove a reserved region by DSPBridge: 6 MB
Unload before suspend and load after resume
Reserved even when the driver is unloaded
Remove framebuffer area: 16 MB
Redraw after resume
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
7/17
Improve device initialization
Remove omap-mcbsp driver initialization from boot process
Compile as a module with CONFIG_SND_SOC=m
Device initialization time: about 1.4 seconds
Driver Description Device
initialization time
omap_dss Display 12.26%
Serial Serial (UART) 43.93%
onenand NAND flash 18.48%
Offloaded
omap-mcbsp-dai Serial sound I/F 16.37%
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
8/17
Improve device restore
WLAN restore is more than half of Restore System Activities
332 devices are restored during resume operation
Restore System Activities: about 1.5 seconds
Device Description Time
phy0 Physical layer for 802.11 55% Offloaded
omapdss Display 6%
FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase
9/17
Improve Memory Transfer
Allocate swap space in NAND flash
Faster access than eMMC
eMMC:
NAND flash: