faster resume for energy savings on meego · 2016-07-06 · resume process breakdown 4.0% kernel...

21
Faster Resume For Energy Savings on MeeGo Yoshiya Hirase ([email protected] ) April 13, 2011

Upload: others

Post on 24-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Faster Resume For Energy

Savings on MeeGoSavings on MeeGo

Yoshiya Hirase ([email protected])

April 13, 2011

Page 2: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Agenda

• Goal

• Approach

• Resume time optimizations

• Movie 1

• Early-screenshot for better user experience

• Movie 2• Movie 2

• Summary

2/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 3: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

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• Recover application context after battery run out

• Enable more power-off time

• Three seconds for fast resume

• Platform and application independent

3/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 4: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

• Use TuxOnIce for hibernation

• Make resume faster

• Speed up boot sequence

• Minimize snapshot image size

• Implement as generic as possible

Approach

Restore system contextBootloader Linux kernel start-up

Resume process

Time

4/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 5: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Resume Process Breakdown

4.0%

Kern

el

loadin

g

Nolo

sta

rt-u

p

Device

initia

lization

Sw

ap d

evice

wait

Read h

eader

Read

pagese

t1

Rest

ore

syst

em

act

ivitie

s

Read

pagese

t2

0.9% 0.6% 17.2% 75.1%2.2%

Kern

el

unco

mpre

ssin

g

Oth

er

kern

el

initia

lization

TuxOnIceLinux kernel start-

up

Time

Nolo

sta

rt

Device

initia

lization

Sw

ap d

evice

Read h

eader

pagese

t1

Rest

ore

syst

em

act

ivitie

s

pagese

t2

Boot loader

Platform: N900 (256MB SDRAM)

Processor: TI OMAP 3430: ARM Cortex-A8 600 MHz

Linux kernel: 2.6.35 (MeeGO for N900) + patch sets

- Suspend-To-Disk for ARM

- TuxOnIce for 2.6.35 kernel

Snapshot image size: 23MB (70 % compression)

Snapshot image compression: LZO

Boot device: eMMC mass storage

Resume time: about 10 seconds

5 /17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 6: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

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• Cons

• Slower suspend process

• Application responses might degrade after resume

• Removing unnecessary memory area

• Kernel text, data

• DSPBridge buffer

• Framebuffer data

6/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 7: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

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• Unload before suspend and load after resume

• Reserved even when the driver is unloaded

• Remove framebuffer area: 16 MB

• Redraw after resume

7/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 8: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

• Remove omap-mcbsp driver initialization from boot process

• Compile as a module with CONFIG_SND_SOC=m

• Device initialization time: about 1.4 seconds

Improve device initialization

Driver Description Device

initialization time

omap_dss Display 12.26%omap_dss Display 12.26%

Serial Serial (UART) 43.93%

onenand NAND flash 18.48%

omap-mcbsp-dai Serial sound I/F 16.37% Offloaded

8/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 9: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

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%

omapdss Display 6%

Offloaded

9/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 10: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

• Allocate swap space in NAND flash

• Faster access than eMMC

• eMMC: < 20MB/s sequential read

• NAND flash: < 23MB/s sequential read

• Use mtdblock instead of mtdswap

• mtdswap is not applicable to hibernation

Improve Memory Transfer

• Suppress bootloader and kernel messages

• ‘quiet’ option for Linux

10/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 11: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Resume time result

20

25

30

35

Resu

me tim

e (s)

Resume Time

TuxOnIce

FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase11/17

0

5

10

15

0 50 100 150 200 250

Resu

me tim

e (s)

System context size (MB)

TuxOnIce

Optimized

Linear (TuxOnIce)

Linear (Optimized)

Page 12: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Suspend time result

50

60

70

80

90

Susp

end tim

e (s)

Suspend Time

TuxOnIce

FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase12 /17

0

10

20

30

40

50

0 50 100 150 200 250

Susp

end tim

e (s)

System context size (MB)

TuxOnIce

Optimized

Linear (TuxOnIce)

Linear (Optimized)

Page 13: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Snapshot image size shrinking result

10

12

14

16

18

20

size (M

B)

System Context Size and Snapshot Image Size

FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase13 /17

0

2

4

6

8

10

0 50 100 150 200 250

Snapsh

ot si

ze (M

B)

System context size (MB)

Page 14: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Movie: Optimized Snapshot boot

14/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 15: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Improve user experience with Early-Screenshot

• Save the last screenshot in suspend process

• Restore the screenshot immediately in bootloader

• Visual assistance for user

• Possible to start an action almost right after power-on

• Trade off between user experience and extra cost

• Overhead in suspend and resume processes

• Additional 700 ms in bootloader• Additional 700 ms in bootloader

• Snapshot image gets bigger (saved as pageset3)

• Screen data: 750 KB for 800 x 480 pixels, 16bit RGB

• Handover framebuffer settings in resume process

• Skip part of DSS initialization with CONFIG_FB_OMAP_BOOTLOADER_INIT enabled

• Not recommended but works

15/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 16: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Movie: Snapshot boot w/ early screen image

16/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 17: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Summary

• Implement hibernation in a handset device

• Achieved fast resume about 3 seconds

• cold boot (about 1 minute), TOI (about 10 seconds)

• Snapshot image size is constant, not proportional to application memory size

• Platform and application independent

17/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 18: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase18

Page 19: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

AppendixAppendixAppendixAppendix

19/17 FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase

Page 20: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

TuxOnIce Process BreakdownSw

ap d

evice

wait

Read h

eader

Read p

agese

t1

Rest

ore

syst

em

act

ivitie

s

Read p

agese

t2

8.25% 0.08% 3.90% 11.42% 29.63% 0.74%0.69%0.05%20.35%

75.1% in total resume operation

FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase20

Sw

ap d

evice

wait

Read h

eader

Read p

agese

t1

Rest

ore

syst

em

act

ivitie

s

Read p

agese

t2

Page 21: Faster Resume For Energy Savings on MeeGo · 2016-07-06 · Resume Process Breakdown 4.0% Kernel loading Nolo start-up Device initialization Swap device wait Read header Read pageset1

Device initialization in kernel start-upDevice Time / Total (%)

usbcore 0.11%

i2c_omap 0.27%

twl4030 0.21%

twl4030_usb 0.17%

i2c_omap 0.87%

musb_hdrc 0.08%

net 0.18%

dspbridge 0.29%

omap dss 12.26%

Top four

dominatesomap dss 12.26%

acx565 0.11%

serial 43.93%

onenand 18.48%

usbcore 0.45%

tsc2005 0.85%

twl4030_wdt 2.01%

omap-mcbsp-dai 16.37%

input av jack 0.71%

alsa 0.47%

net protocol 17 35 0.60%

power management 0.92%

vfp 0.67%

Driver Description Operation

Time (s)

omap_dss Display 12.26%

Serial Serial (UART) 43.93%

onenand NAND flash 18.48%

omap-mcbsp-dai MCBSP (serial I/F) 16.37%

FasterResumeForMoreEnergySavings_ELC _v05Final.ppt/ 2011-04-13 / Yoshiya Hirase2121/17