Cellular’Networks’and’Mobile’ Compung’ COMS’6998

95
Cellular Networks and Mobile Compu5ng COMS 699811, Spring 2012 Instructor: Li Erran Li ([email protected]) hKp://www.cs.columbia.edu/~lierranli/ coms699811Fall2012/ 9/25/2012: Ebug debugging, Power Models, and Profiling

Transcript of Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Page 1: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Cellular  Networks  and  Mobile  Compu5ng  COMS  6998-­‐11,  Spring  2012  

Instructor:  Li  Erran  Li  ([email protected])  

hKp://www.cs.columbia.edu/~lierranli/coms6998-­‐11Fall2012/  

9/25/2012:  Ebug  debugging,  Power  Models,  and  Profiling  

Page 2: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Announcements  

•  Contact  TA  Jaimin  Shah  ([email protected])  to  provision  your  iOS  devices  

•  Programming  assignment  2  will  be  due  on  Tuesday,  Oct  2nd  

2  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 3: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Outline  

•  The  Rise  of  Ebugs  •  Debugging  no-­‐sleep  Ebugs  •  Methods  of  Measuring  Power  Usage  •  Power  Models  

– Usage  based  – System  call  trace  based  

•  Profiling  •  Conclusion  

3  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 4: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

The  Rise  of  Energy  Bugs  

Single  Symptom:    Severe,  Unexpected  BaKery  Drain  

Apps  Need  Not  Crash  No  Blue  Screen  Of  Death  

Common  Percep5on:  Kill  some  apps  to  fix  

Courtesy:  Pathak  et  al   4  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 5: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

User  Frustra5on    (Dialer  App  EBug)  

Courtesy:  Pathak  et  al   5  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 6: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Crawling  Internet  Forums  

4  Online    Mobile  Forums  

1.2M  Posts  (~400  mobile  devices;  Several  mobile  OSes)  

grep  “power  drain”,  “baGery  drain”,  etc.  

39K  Posts  

K-­‐means  

1000  Clusters  

Human  EBug  Taxonomy  

1.  

2  Mobile  Bugs/Issues  Repository  2.   Indepth  Analysis  

Courtesy:  Pathak  et  al   6  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 7: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Ebug  Taxonomy  Eb

ug  

Hardware  23%  

SoXware  35%  

External  12%  

Unknown  30%  

OS  

Apps  No  Sleep  Bug  

Loop  Bug  

Immortality  Bug  

External  Service  

Network  Signal  Strength  

Wireless  Handovers  

Courtesy:  Pathak  et  al   7  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 8: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Hardware  EBug   Ebug  

Hardware   23%  

SoXware   35%  

External   12%  

Unknown   30%  

BaGery  

Exterior  Hardware  Damage   SDCard  

Sim  Card  

External  Hardware  

Courtesy:  Pathak  et  al   8  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 9: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Ebug  Taxonomy  Eb

ug  

Hardware  23%  

SoXware  35%  

External  12%  

Unknown  30%  

OS  

Apps  No  Sleep  Bug  

Loop  Bug  

Immortality  Bug  

External  Service  

Network  Signal  Strength  

Wireless  Handovers  

Courtesy:  Pathak  et  al   9  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 10: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

OS  Ebugs  

IOS  Version:  4.0  –  4.3.3  (5%  posts)  

2.5%  posts  

Why  does  OS  Leak  Energy?    

– Hard  to  infer  

– OS  Processes  

– System  Configura5on  

Courtesy:  Pathak  et  al   10  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 11: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Apps  EBug:  No  Sleep  Bug  

•  Aggressive  Sleeping  Policies:  Smartphone  OSes  freeze  system  afer  brief  inac5vity  

•  Power  encumbered  Programming:  Programmer  has  to  manage  sleep/wake  cycle  of  components  

•  No  Sleep  Bug:  At  least  one  component  is  kept  awake  due  to  mismanagement  

Courtesy:  Pathak  et  al   11  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 12: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

External  Condi5ons  

•  External  Services  (<1%)  

 •  Network  Signal  Strength  (11%)  

•  Wireless  Handovers  (<1%)  

Ebug  

Hardware   23%  

SoXware   35%  

External   12%  

Unknown   30%  

Courtesy:  Pathak  et  al   12  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 13: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

EDB:  Energy  Debugging  Framework  

Courtesy:  Pathak  et  al   13  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 14: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Mobile  Programming  EcoSystem:  The  EBug  Blame  Game  

App  Developers  

Framework  Developers  

Kernel  Developers  

Firmware/OEM  Developers  

Hardware  Manufacturers  

Network  Operators  

Courtesy:  Pathak  et  al   14  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 15: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Outline  

•  The  Rise  of  Ebugs  •  Debugging  no-­‐sleep  Bugs  •  Methods  of  Measuring  Power  Usage  •  Power  Models  

– Usage  based  – System  call  trace  based  

•  Profiling  •  Conclusion  

15  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 16: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Smartphones  are  Energy  Constrained  

16  

CPU  

Screen  

3G/4G  

WiFi  

GPS  

Camera  

BaGery  energy  density  only  

doubled  in  last  15  years  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 17: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Paradigm  Shif  in  Power  Management  

•  Desktop/Server/Laptop:  Default  ON  – CPU  turned  off  when  idle  for  long  5me  

•  Smartphones:  Default  OFF  – Smartphone  OSes  aggressively  turn  off  Screen/CPU  afer  brief  user  inac5vity  

– Helps  increasing  standby  5me  period  

17  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 18: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Consequences  of  Aggressive    Sleeping  Policy  

•  Background  jobs    •  User  is  not  always  touching  phone  

18  

public void DoNetwork ( ) { }

Sync_Over_Network  (  );        //Sync  state  with  remote  server                                                                                              //Can  take  up  to  a  minute  

Need  a  mechanism  to  explicitly  keep  components  awake.  

Keep  the  screen  on  !  Cellular  Networks  and  Mobile  Compu5ng  

(COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 19: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Android  API  to  Explicitly  Keep  Components  Awake  

19  

PowerManager  pm  =  (PowerManager)  getSystemService(Context.POWER_SERVICE);  PowerManager.WakeLock  wakelock=  pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,  null);

API   Component  (s)  

PARTIAL_WAKE_LOCK   CPU  

SCREEN_DIM_WAKE_LOCK   CPU  and  Screen  (DIM)  

SCREEN_BRIGHT_WAKE_LOCK   CPU  and  Screen  (Bright)  

Camera.startPreview()  Camera.release()  

Camera  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 20: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Android  API  to  Explicitly  Keep  Components  Awake  (Cont’d)  

20  

public void DoNetwork ( ) { }

wakelock.acquire  (  );                  //Don’t  let  CPU  sleep  5ll  I  say  so        wakelock.release  (  );                  //CPU  is  now  free  to  sleep  

Sync_Over_Network  (  );        //Sync  state  with  remote  server                                                                                              //Can  take  up  to  a  minute  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 21: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

iOS  API  to  Explicitly  Keep  Components  Awake  

•  Screen:  idleTimerDisabled  property  in  UIApplicagon  –  If  NO,  the  idle  5mer  turns  off  the  device’s  screen  afer  a  specified  period  of  inac5vity  

•  GPS:  enable/disable  loca5on  updates,  and  set  the  distance  filter  and  accuracy  levels  –  Core  Loca5on  uses  the  available  GPS,  cell,  and  Wi-­‐Fi  networks  to  determine  the  user’s  loca5on  

–  Core  Loca5on  minimizes  the  use  of  these  radios  –  Sepng  the  accuracy  and  filter  values  gives  Core  Loca5on  the  op5on  to  turn  off  hardware  altogether  in  situa5ons  where  it  is  not  needed.  

•  WiFi:  UIRequiresPersistentWiFi  key  in  the  app’s  Info.plist  file    –  System  will  not  shut  down  the  Wi-­‐Fi  hardware  while  your  app  is  running.  

21  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 22: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Power  Encumbered  Programming  

22  

App  programmer  has  to  manage  sleep/wake  cycle  of  components  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 23: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

NoSleep  Energy  Bugs  

23  

An  error  in  smartphone  app,  where  a  component  is  woken  up,  but  not  put  to  sleep  

Component   Impact  (Google  Nexus)  

CPU   50-­‐60%  baKery  in  12  hrs    

Screen   100%  baKery  in  4-­‐6  hrs  

GPS   100%  baKery  in  3-­‐5  hrs  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 24: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Collec5ng  and  Characterizing  Bugs  

•  Online  mobile  forums    

•  Bug  lists  

•  Open  source  code  repositories  

•  Running  the  detec5on  tool  

24  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 25: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Types  of  NoSleep  Bugs  

25  

NoSleep  Race  Condi5ons  

NoSleep  Code  Paths  

NoSleep  Dila5ons  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 26: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

public void DoNetwork ( ) { }

try  {                    }  catch  (SomeExcep5on  e){  

 Print.Error  (  e  );                //Print  Error  for  Debugging  purposes  }    

wakelock.acquire  (  );                  //Don’t  let  CPU  sleep  5ll  I  say  so        wakelock.release  (  );                  //CPU  is  now  free  to  sleep  

(a)  NoSleep  CodePaths  

26  

Sync_Over_Network  (  );        //Sync  state  with  remote  server                                                                                              //Can  take  upto  a  minute  

;throws    ;excepgon  

At  least  one  path  in  program  wakes  up  a  component  and  does  not  put  it  to  sleep  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 27: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

(b)  NoSleep  Race  Condi5on  (1)  

27  

Process  

Thread  1  

Thread  2  

Time  

Process  

Thread  1   Thread  2  

Time  

acquire  

acquire  release  

release  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 28: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

public class WorkerThread { }

while(true){  //Infinite  Loop                      }  

(b)  NoSleep  Race  Condi5ons  (2)  

28  

public class MainThread { }

wakelock.acquire  (  );    //CPU  Cant  Sleep  

WorkerThread.start  ();//start  worker    

WorkerThread.interrupt();//stop  worker    

wakelock.release  (  );  //CPU  can  sleep  now  

boolean  KillFlag  =  false;  //Kill  Flag  

KillFlag  =  true;  //Kill  the  worker  thread  

if(KillFlag)  break;  //Exit  

NetSync();  //Cri5cal  Sec5on    

Thread.Sleep  (3  Mins);//Sleep  for  3  mins    

wakelock.release  (  );  //CPU  can  sleep  

wakelock.acquire  (  );    //CPU  Cant  Sleep  

…….  …….  ......  

…….  …….  

Correct  Execu5on  Buggy  Execu5on  Cellular  Networks  and  Mobile  Compu5ng  

(COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 29: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

(c)  NoSleep  Dila5ons  

29  

Components  are  eventually  turned  off  but  are  kept  on  for  unusually  long  dura5on  of  5me    

public void onCreate( ) {

   } public long startNewTrack( ) {

..

}

+  wakelock.acquire  (  )  ;  

wakelock.acquire  (  )  ;  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 30: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Detec5ng  NoSleep  Bugs  

•  NoSleep  Code  Paths    •  NoSleep  Race  Condi5ons  

•  Sta5c  Data  Flow  Analysis  – Reaching  Defini5ons  Data  Flow  Problem  

30  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 31: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

:  {}  

:  {d1,  d2}  :  {d1,  d2}  :  {d1,  d2}  

:  {d3,  d4}   :  {d2,  d5,  d6}  

:  {d2,  d3,  d4,  d5,  d6}  

Reaching  Defini5ons  Data  Flow  Problem  

31  

y  =  3;  x  =  10;  y  =  11;    if(  y  >  5  )  {            x  =  1;            y  =  2;  }  else  {            z  =  x;            x  =  4;  }  

Problem  Statement:  For  each  point  in  the  program,  determine  which  defini5on  of  variable  are  

reachable  

exit  

entry  

d0:    y  =  3  d1:    x  =  10  d2:    y  =  11        if  (y>5)  

B0  

d3:    x  =  1  d4:    y  =  2    

d5:    z  =  x  d6:    x  =  4    

B1   B2  

IN[B0]  

OUT[B0]  

OUT[B2]  

IN[B2]  IN[B1]  

IN[exit]  

OUT[B1]  

OUT[entry]  =  {}  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 32: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

NoSleep  Code  Path  DataFlow  Analysis  

32  

try  {                    }  catch  (SomeExcep5on  e){  

 Print.Error  (  e  );                //Print  Error  for  Debugging  purposes  }    

wakelock.acquire  (  );                  //Don’t  let  CPU  sleep  5ll  I  say  so        wakelock.release  (  );                  //CPU  is  now  free  to  sleep  

Sync_Over_Network  (  );        //Sync  state  with  remote  server                                                                                              //Can  take  upto  a  minute  

;throws    ;excepgon  

exit  

Entry            

d0:    wakelock  =  1;  Sync_over_network()  

B0  

d1:  wakelock  =  0;   Print.error(e);  

B1  B2  

exit  

Entry            

d0:    wakelock.acquire();  Sync_over_network()  

B0  

d1:  wakelock.                realease();  

Print.Error(e)  

B1   B2  

:  {d0,  d1}  IN[exit]  

:  {d1}  :  {d0}  

Apply  reaching  defini5ons  to  NoSleep  CodePaths  Cellular  Networks  and  Mobile  Compu5ng  

(COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 33: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Addi5onal  Details  of  Analysis  in  Paper  

•  Event  based  programming  

•  Java  run5me  issues  

•  Special  code  paths:  reducing  false  posi5ves  

•  Mul5-­‐threaded  programs  

33  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 34: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Implementa5on  

•  Soot  Implementa5on  – Open  source  framework  for  analyzing  java  bytecode  from  Sable  research  group  at  McGill  University  

– Added  ~2  KLOC    

•  Runs  on  Java  byte  code  – No  need  for  source  code  

34  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 35: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Evalua5on:  NoSleep  Code  Paths  

Total  Apps  86  

BUG  in  reality   No  BUG  in  reality  

Tool  reports  BUG  (55)  

True  Posi5ve  42  

False  Posi5ve  13  

Tool  reports  no  BUG  (31)  

False  Nega5ve  0  

True  Nega5ve  31  

35  

500  Apps  

Apps  Manipulagng  components  

187  

Apps  which  could  be  decompiled  

86  

Find  NoSleep  Bugs  

55  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 36: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Causes  of  Detected  NoSleep  Bugs  

36  

Category   Number  of  Apps  

Examples  

Incorrect  Wakelock  Handling  in  Events  

26   MyTracks  

If,  else  +  excep5on  Paths  

12   Facebook  

Forgot  Release   4   K9Mail  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 37: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Common  Cause  of  False  Posi5ves  

37  

EXIT  

If(caller  !=  BLACKLISTED)  

Wl.release();  

If(caller  !=  BLACKLISTED)  

Wl.acquire();  

ENTER  

.  

.  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 38: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Summary  

•  Paradigm  shif  in  power  management  – Power  encumbered  programming  

•  NoSleep  energy  bugs  – Code  paths,  race,  dila5on  

•  Reaching  defini5on  data  flow  analysis  – Found  30  new  previously  unreported  bugs  

38  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 39: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Future  Work  

•  Comprehensive  approaches  to  No-­‐Sleep  bug    – Detec5on:    e.g.  Symbolic  execu5on  

– Preven5on:    e.g.  BeKer  abstrac5on  for  power  management  API  

– Mi5ga5on:  e.g.  Run5me  detec5on,  Limi5ng  damage  of  the  bug  

39  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Jindal  et  al  

Page 40: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Measuring  Power  Usage  

•  Approach  1:  Use  power  meter  (offline)  – Buy  an  expensive  equipment  ($770)  

– Problems:  •  Only  reports  en5re  device  energy  consump5on  

•  Approach  2  :  Use  built-­‐in  baKery  sensor  (online)  

40  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 41: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

iOS  BaKery  API  •  Use  UIDevice class  to  obtain  informa5on  and  no5fica5ons  about  – charging  state  (property  batteryState)  – charging  level  (property  batteryLevel)  

1.  [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES]; !2.  NSArray *batteryStatus = [NSArray arrayWithObjects: !3.  @"Battery status is unknown.", !4.  @"Battery is in use (discharging).", !5.  @"Battery is charging.", !6.  @"Battery is fully charged.", nil]; !7.  if ([[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateUnknown) !8.  NSLog(@"%@", [batteryStatus objectAtIndex:0]); !9.  else!10.  { "!11.  NSString *msg = [NSString stringWithFormat: !12.  @"Battery charge level: %0.2f%%\n%@", " "

" " "[[UIDevice currentDevice] batteryLevel] * 100, !13.  [batteryStatus objectAtIndex:[[UIDevice currentDevice]

" " " "batteryState]] ]; !14.  NSLog(@"%@", msg); !15.  } !

41  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 42: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Android  BaKery  API  •  Sample  updates  stored  in  files:  

–  Current:  /sys/class/power_supply/battery/batt_chg_current  –  Voltage:  /sys/class/power_supply/battery/batt_vol–  Capacity:  /sys/class/power_supply/battery/capacity  1.  File fcur = new File("/sys/class/power_supply/

battery/batt_chg_current");2.   if (fcur.exists())3.  …

•  File  names  are  vendor  dependent  •  Access  using  Android  Debug  Bridge  (adb)  

–  <sdk>pla|orm-­‐tools  –  Command:  adb  shell

42  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 43: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Outline  

•  The  Rise  of  Ebugs  •  Debugging  no-­‐sleep  Bugs  •  Methods  of  Measuring  Power  Usage  •  Power  Models  

– Usage  based  – System  call  trace  based  

•  Profiling  •  Conclusion  

43  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 44: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Smartphone  is  Energy  Constrained  

•  Energy:  One  of  the  most  cri5cal  issues  in  smartphones  –  Limited  baKery  life5me    

•  BaKery  energy  density  only  doubled  in  last  15  yrs  

•  Smartphone  capability  has  increased  dras5cally  – Mul5ple  Components:  GPS,  3G,  re5na  display,  ….  

Courtesy:  Pathak  et  al   44  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 45: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Towards  Understanding  Energy  Drain  

•  Key  Ques5on:  Where  is  energy  being  spent?  – Which  component/process/thread/func5on(?)    

Courtesy:  Pathak  et  al   45  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 46: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Generic  Power  Modeling  

Predic5on  Phase  

Actual  Power  Consump5on      Power  meter  

Triggers  

Model  

Predicted  Power      Consump5on  

Triggers  

Training  Phase  

Courtesy:  Pathak  et  al   46  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 47: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Smartphone  Power  Modeling:  U5liza5on  Based  (1/3)  

Predic5on  Phase  

Actual  Power  Consump5on      Power  meter  

Triggers  U5liza5on  

Model  

Predicted  Power      Consump5on  

Triggers  U5liza5on  

Training  Phase  

Model  =  (U5lNet)*  ENet  +  (U5lCPU)*  ECPU  +  (U5lDisk)*  EDisk  

Linear  Regression  (LR)  and  Superimposi5on    

Courtesy:  Pathak  et  al   47  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 48: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Smartphone  Power  Modeling:  U5liza5on  Based  (2/3)  

•  Sesame  paper  has  two  op5miza5ons:  model  molding,  principle  component  analysis  (PCA)  

•  PowerTutor  model  

48  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 49: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Smartphone  Power  Modeling:  U5liza5on  Based  (3/3)  

Fundamental  (yet  intui5ve)  assump5on  (Only  acCve)  UClizaCon  =>  power  consumpCon  

Second  assump5on  Energy  scales  linearly  with  amount  of  work  

Third  assump5on    Components  power  consumpCon  add  linearly  

 Desired  Feature  

Which  process/thread/func5on?  Hard  to  correlate  

Model  =  (U5lNet)*  ENet  +  (U5lCPU)*  ECPU  +  (U5lDisk)*  EDisk  

Courtesy:  Pathak  et  al   49  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 50: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

(Only  ac5ve)  U5liza5on  =>  Power  Consump5on  

File  open/delete/  close/create    change  power  state  

Several  components    have  tail  states    (3G,  disk,  wifi,  gps)  

Courtesy:  Pathak  et  al   50  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 51: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Energy  scales  linearly  with  amount  of  work  

(1)    Send  packets                  @  <  50pkts/s  +100-­‐125mA  

(2)    Send  packets                  @  >  50pkts/s  +325mA  

WM6.5  on  Tytn  II  

Courtesy:  Pathak  et  al   51  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 52: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Components  power  consump5on  add  linearly  

+180mA   +110mA  

Send  start  

 Send  done  Socket  close  

Spin_CPU   Spin_CPU  Stop  

Send(2mb)  (i  =  1)  

Spin_CPU(2M)  (i  =  1)  

Send(2mb)  (i  =  5)  

(1)  Send(10mb);              sleep();              Socket.close();  

(2)  Spin_CPU(10M);  

(3)  for  (i  in  1  to  5){          Send(2mb);          Spin_CPU(2M);  }  Sleep();  Socket.close();  

+200mA  

+180mA  +200mA  

Spin_cpu(2M)  (i  =  5)  

Network  tail  Socket  close  

+110mA  

WM6.5  on  HTC  Touch  

Courtesy:  Pathak  et  al   52  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 53: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

What  have  we  learnt  so  far?  Simple  (state-­‐of-­‐art)  energy  modeling  assump5ons  are  wrong  There  exits  a  no5on  of  power  states    

What  have  we  hinted  so  far?  Device  drivers  have  intelligent  power  control  rules  System  calls  play  a  role  in  power  consump5on      

Challenges  in  fine-­‐grained  power  modeling?  Device  drivers  are  closed  source  (no  code/no  informa5on)      

Courtesy:  Pathak  et  al   53  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 54: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

System  Calls  As  Power  Triggers  

Advantages:  –  Encapsulates  u5liza5on  based  triggers  

•  Parameters  of  system  calls  –  Captures  power  behavior  of  ones  that  do  not  necessarily  imply  u5liza5on  

–  Can  be  traced  back  to  process,  thread,  func5on  •  Eases  energy  accoun5ng  

Key  observa5on:  System  call  is  the  interface  through  which  an  applica5on  communicates  with  the  underlying  system  (hardware)  

and  outside  world  (Internet,  GPS,  etc.)  

Key  Idea:  Use  System  Calls  as  triggers  in  power  modeling  

Courtesy:  Pathak  et  al   54  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 55: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Finite-­‐State-­‐Machine  (FSM)    as  Power  Model  Representa5on  

We  Use  Finite-­‐State-­‐Machine  (FSM)  •  Nodes:  Power  states    

– Base  State:  No  ac5vity  on  phone  – Produc5ve  state:  Actual  u5liza5on  – Tail  state:  No-­‐useful  work  

•  Edges:  Transi5on  rules  – System  calls  (start/comple5on)  – Workload  (Ex:  50  pkts/sec)  – Timeout  

 

State  1   State  

2  

State  3  

Transi5ons  

Courtesy:  Pathak  et  al   55  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 56: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

FSM  Power  Model  Construc5on  •  Systema5c  ‘Brute  Force’  Approach  

–  Step  1  :  Model  Single  System  Call        

–  Step  2  :  Model  Mul5ple  System  Calls  for  Same  Component      

–  Step  3  :  Model  Mul5ple  Components  (En5re  Phone)      

•  Requires  domain  knowledge  – Seman5cs  of  system  calls  

Courtesy:  Pathak  et  al   56  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 57: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Step  1:  Single  System  Call  FSM  System  call:  read  (fd,  buf,  size);  

WM6.5  on  HTC  Touch  

Measured  power  consump5on  +  system  calls  (trigger)  

Modeled  power  consump5on   FSM  

Courtesy:  Pathak  et  al   57  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 58: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Step  2:  Modeling  Mul5ple  System  Calls  of  Same  Component  

•  Observa5on:  A  component  can  only    have  a  small  finite  number  of  power  states  

•  Methodology  –  Iden5fy  and  merge  similar  power  states  – Obey  programming  order  – Model  concurrent  system  calls  

Courtesy:  Pathak  et  al   58  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 59: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Step  2:  WiFi  NIC  Base  State  +0mA  

Low  Net  +125  mA  Send  done  

Send  <  50  Pkts/sec  

 Net  Tail  +280  mA  

High  Net  +325  mA   Send  done  

Send  

Send  >  50  Pkts/sec  

Base  State  +0mA  

Socket  close   Net  Tail  +280  mA  

Socket  close  

Base  State  +0mA  

Low  Net  +125  mA  Send  done  

Send  <  50  Pkts/sec  

Net  Tail  +280  mA  

High  Net  +325  mA   Send  done  

Send  

Send  >  50  Pkts/sec  Socket  close  

Socket  close  

SEND   CLOSE  

WM6.5  on  HTC  Tytn  II  

Courtesy:  Pathak  et  al   59  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 60: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Step  3:  Modeling  Mul5ple  Components  

•  Observa5on:  Different  components  may  interact  with  each  other’s  power  consump5on  

•  Methodology  – Try  to  reach  different  combina5on  of  states  – Construct  new  states  and  transi5ons  in  FSM  

Courtesy:  Pathak  et  al   60  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 61: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Implementa5on  

•  Windows  Mobile  6.5  – Extended  CeLog  

•  Android  – System  Tap:  Logs  kernel  events  – Android  debugging  framework:  Custom  logging  in  Dalvik  VM  

Courtesy:  Pathak  et  al   61  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 62: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Evalua5on:  Handsets  Used  

HTC  Tytn  II   HTC  Touch   HTC  Magic  

Win  6.5  (CE  5.2)   Win  6.5  (CE  5.2)   Android  (Linux  2.6.34)  

Courtesy:  Pathak  et  al   62  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 63: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Snapshot  of  FSM  for  En5re  Phone  

Base  State  +0mA  

Low  Net  +125  mA  Send  done  

Send  <  50  Pkts/sec   Send  

Net  Tail  +270  mA  

High  Net  +325  mA  

Send  done  

Send  >  50  Pkts/sec  

Net  Tail  +  CPU  +300  mA  CPU  

Timeout  1.7s  

High  CPU  +130  mA  

CPU  (ctx_in)            ctx_out  

High  Disk  +125  mA  

Disk:  Read  /write/open/close/create/delete   Disk  

Tail  +75  mA  

                   Disk    Call  completed  

Timeout  3s  DTail+  CPU  +130  mA  

CPU  

WM6.5  on  HTC  Tytn  II  

Courtesy:  Pathak  et  al   63  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 64: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

End-­‐To-­‐End  Energy  Es5ma5on  Error  

20   18  

0  2  4  6  8  10  12  14  

csort  

drop

bear  

maps  

facebo

ok  

youtub

e  

game  

chess  

diskB  

netB  

ie.cnn

 pviewer  

docCon

v  virusScan  

youtub

e  pu

ploade

r  

Error  %

   

FSM  LR  

WM6  Android  

FSM:  under  4%  LR:  1%  –  20%  

Courtesy:  Pathak  et  al   64  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 65: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Fine-­‐Grained  Energy  Es5ma5on  

FSM  based  on  System  calls   Linear  Regression  (State-­‐of-­‐art)  

FSM:  80th  percen5le  error  less  than  10%  for  all  apps  LR:  10th  percen5le  error  less  than  10%  for  all  apps  

CDF  of    energy  esgmagon  error  per  50ms  gme  interval  

Courtesy:  Pathak  et  al  65  Cellular  Networks  and  Mobile  Compu5ng  

(COMS  6998-­‐11)  

Page 66: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Outline  

•  The  Rise  of  Ebugs  •  Methods  of  Measuring  Power  Usage  •  Power  Models  

– Usage  based  – System  call  trace  based  

•  Profiling  •  Conclusion  

66  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 67: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Energy  Profiling  •  eprof  published  in  Eurosys  2012  •  QCOM  Trepn  Profiler    

–  Trepn  leverages  hardware  sensors  built  into  the  Snapdragon  MDP  

–  Analyze  power  consump5on  of  hardware  blocks  in  the  Snapdragon  MDP,  including:  

•  CPU  (system  and  auxiliary)  •  GPS  •  Bluetooth  •  Camera  •  Audio  •  Memory  •  Network  data  (op5mizes  data  transfer  frequency)  

67  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 68: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Towards  Energy  Profiling  

68  

1970’s-­‐80’s   2010  Energy  Profiler…?  Gnu  Profiler    

(gprof  PLDI’82)  

•  Performance   •  Energy:  One  of  the  most  cri5cal  issues  in  smartphones  

•  BaKery  energy  density  only  doubled  in  last  15  yrs  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 69: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Approach  (a)  :  Power  Meters  

69  Time  (seconds)  

Power  Con

sumed

 by  mob

ile  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 70: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Approach  (a)  :  Power  Meters  

70  Time  (seconds)  

Power  Con

sumed

 by  mob

ile  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 71: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Approach  (b)  :  Sofware  Energy  Profiling  

•  Tracking  power  ac5vi5es  

•  Tracking  app  ac5vi5es  

•  Mapping  power  ac5vi5es  to  app  ac5vi5es    

71  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 72: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Tracking  Power  Ac5vi5es  Power  Modeling  

•  State-­‐of-­‐art  ‘u5liza5on  based’  power  models  are  inaccurate  on  smartphones  –  Only  ac5ve  u5liza5on  =>  power  consump5on  –  Energy  is  consumed  linearly  w.r.t  u5liza5on  

–  Hard  to  map  power  triggers  to  fine  grained  app  ac5vi5es  

•  System  call  triggered  FSM  based    fine-­‐grained  power  model  [Eurosys  ‘11]  –  Use  system  calls  as  power  triggers  –  System  calls  drive  Finite-­‐State-­‐Machine  

72  

Base  State  

Prod.State  

Tail  State  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 73: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Tracking  App  Ac5vi5es  •  Granularity  of  Energy  Accoun5ng  

     

 

73  

Mulg  Processing:  

Mulg  Threading:  Third  Party  Ad  Module  

Collect  informa5on  Upload  informa5on  Download  ads  

Mulgple  Rougnes:  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  Courtesy:  Pathak  et  al  

Page 74: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Tracking  App  Ac5vi5es  •  Granularity  of  Energy  Accoun5ng    

–  eprof  supports  per  Process/Thread/Rou5ne  granularity  

•  I/O  Devices  –  Track  system  call  to  program  en5ty  

•  Process  –  getpid()  •  Thread  –  gepd()  •  Rou5ne  –  backtrace()  

•  CPU  –  Just  like  gprof  [PLDI  ‘82]  –  Periodic  sampling  of  rou5ne  call  stack  

74  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 75: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Where  is  Energy  Spent  Inside  My  App?  

•  Tracking  power  ac5vi5es  –  System  call  based  online  power  model  

•  Tracking  app  ac5vi5es  –  IO:  Backtrace  system  calls  –  CPU:  Just  like  gprof  [PLDI  ‘82]  

•  Mapping  power  ac5vi5es  to  app  ac5vi5es  – Accoun5ng  Policy:  Lingering  Energy  Consump5on  

75  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 76: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Lingering  Energy  Consump5on  (a)  Tail  Energy  

76  

Effect  on  power/energy  consumed  by  a  component  because  of  an  acgvity  lasts  beyond  the  end  of  the  acgvity  

Components  with  tail:  Sdcard        3G        WiFi        GPS  

Power  Con

sumed

 (mW)  

Time  

send  10  KB  

Tail  (upto  7  seconds)  

send  completed  

foo()  Cellular  Networks  and  Mobile  Compu5ng  

(COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 77: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Lingering  Energy  Consump5on    (b)  Persistent  State  Wakelock  

77  

•  Aggressive  Sleeping  Policies:  Smartphone  OSes  freeze  system  afer  brief  inac5vity  

•  Power  encumbered  Programming:  Programmer  has  to  manage  sleep/wake  cycle  of  components  

Power  Con

sumed

 (mW)  

Time  

Acquire    wakelock  

Release  wakelock  

foo()  Keep  the  screen  on  !  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 78: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Lingering  Energy  Consump5on  Case  1:  Single  Call  Single  Tail  

78  

Power  Con

sumed

 (mW)  

Time  

send  10  KB  

Tail  (upto  7  seconds)  

send  completed   1.  Energy  represented  in  terms  of    an  energy  tuple  (U,  T)    

2.  (U,  T)  is  aKributed  to  en5ty  (s)  containing  send  system  call  

T  

U

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 79: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Lingering  Energy  Consump5on  Case  2:  Mul5ple  Calls  Mul5ple  Tails  

79  

Power  Con

sumed

 (mW)  

Time  

send1  

T1  

U1  

T2  

U2  

send2  How  to  split  tail  T2    among?  

Average  Policy:  Split  tail  energy  T2  in  weighted  ra5o  

1.  Not  easy  to  define  weights  2.  Policy  gets  complicated  in  

presence  of  mul5ple  system  calls  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 80: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Lingering  Energy  Consump5on  Case  2:  Mul5ple  Calls  Mul5ple  Tails  

80  

send1      :  (U1,  T1  )  send2      :  (U2,  T2  )  

Last-­‐Trigger-­‐Policy:  Assign  asynchronous  (tail)  energy  to  the  last  ac5ve  system  call  

1.  Not  easy  to  define  weights  2.  Policy  gets  complicated  in  

presence  of  mul5ple  system  calls  

Power  Con

sumed

 (mW)  

Time  

send1  

T1  

U1  

T2  

U2  

send2  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 81: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

eprof  System    (Android  and  Windows  Mobile)  

81  

Logging  Overhead:    2-­‐15%  Run  Time,    1-­‐13%  Run  Energy  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 82: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

eprof  Implementa5on  •  SDK  rou5ne  tracing:  extend  Android  

rou5ne  profiling  framework  –  hKp://developer.android.com/

reference/android/os/Debug.html  •  NDK  rou5ne  tracing:  use    gprof  port  

of  NDK  –  hKp://code.google.com/p/android-­‐

ndk-­‐profiler/  •  System  call  tracing:  insert  ADB  

logging  APIs  in  framework  code  and  log  CPU  (sched.switch)  scheduling  event  in  kernel  using  systemtap  –  hKp://www.cyanogenmod.com/  

82  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

AndroidManifest.xml<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />MainActivity.javaimport android.os.Debug;---public void onCreate(Bundle savedInstanceState) {…Debug.startMethodTracing("HelloTest");…Debug.stopMethodTracing();}adb pull /mnt/sdcard/HelloTest.trace .traceview HelloTest.trace

Page 83: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

eprof  Implementa5on  (Cont’d)  

•  Augmented  TraceView  in  Dalvik  – gprof-­‐like  tracing  +  syscall  tracing  

•  eprof  API:  StartEnergyTracing()                                  StopEnergyTracing()  

– Needs  app  recompile  

83  

Modified  Android  framework  to  trace  each  app  by  default  (no  need  for  app  source)  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 84: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Using  eprof    

•  Profiled  popular  mobile  apps  using  EProf  

84  

App   Num  Rou5ne  calls    

Num  Threads  

3rd  Party  Modules  

Browser   1M   34   -­‐-­‐  

AngryBirds   200K   47  

FChess   742K   37  

NYTimes   7.4M   29  

MapQuest   6M   43  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 85: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Case  Studies:  (a)  Android  Browser  Google  Search  

85  

0   5   10   15   20   25   30  

main  

IdleReaper  

HeapWorker  

hGp1  

hGp0  

WVCore  

Energy  Percentage  (%)  

CPU  Net  NetTail  GPS  GPSTail  

Acgvity   Energy  %  

HTTP   38%  

TCP  Condi5oning     25%  

User  Tracking   16%  

GUI  Rendering   5%  Cellular  Networks  and  Mobile  Compu5ng  

(COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 86: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Case  Studies:  (b)  Map  Quest  

86  

0   5   10   15   20   25   30  

SHW.  run()  

NetworkRequest.  DoInBackgrnd()  

Search.Gas()  

MapView.  OnDraw()  

JsonParser.  parseJSON()  

Energy  Percentage  (%)  

CPU  

Net  

NetTail  

GPS  

GPSTail  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 87: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Case  Studies:  (c)  –  Angry  Birds  

87  

Acgvity   Energy  %  User  Tracking  &  

Uploading  Informa5on  45%  

Fetching  Ads   28%  Game  Play   20%  

Google  Nexus  (3G)  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 88: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Case  Studies  (d):    Facebook  Wakelock  Bug  

88  

Power  Con

sumed

 (mW)  

Time  

AppSession.acquireWakelock()  

FaceBookService:  25%  

Google  Nexus  (WiFi)  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 89: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

App  Energy  Drain  Characteris5cs  

•  IO  consumes  the  most  energy    – Most  apps  spent  50%  -­‐  90%  of  their  energy  in  IO  – A  linear  energy  presenta5on  does  not  help  with  debugging  

•  IO  energy  is  spent  in  bursts,  called  bundles  – A  bundle  is  defined  as  a  con5nuous  period  where  IO  component  ac5vely  consumes  energy  

–  Very  few  IO  bundles  per  app  

89  

Power  Con

sumed

 (mW)  

Time  IO  Energy  Bundles  

0  

20  

40  

60  

80  

100  

Browser   AngryBirds   Fchess   NYTimes   Mapquest   Photo  Upload  

%  of  T

otal  Ene

rgy  

IO  Energy  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 90: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

IO  Bundle  Representa5on  

90  

Power  Con

sumed

 (mW)  

TimeLine  

send1  

T1  

U1  

T2  

U2  

send2   send3  

T3  

U3  

One  Network  Bundle  

Base  State  +0mA  

Net  Send  +265  mA  

Net  Tail  +150  mA  

Net  send  

Net  send  5  seconds  inac5vity  

SendPacket()  

Very  Few  Rou5nes  

?????  

What  is  the  app  doing  here?  Cellular  Networks  and  Mobile  Compu5ng  

(COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 91: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Op5mizing  IO  Energy  using  Bundles  

91  

Why  is  a  bundle  so  long?   Why  are  there  so  many  bundles?  

Reduced  energy  consump5on  of  4  apps  by  20-­‐65%  by  minimizing  number  of  bundles  and  reducing  bundle  lengths  

Base  State  +0mA  

Net  Send  +265  mA  

Net  Tail  +150  mA  

Net  send  

Net  send  5  seconds  inac5vity  

AdWhirl.FetchAd()  

PID  0  (null  loop)  

Base  State  +0mA  

Net  Send  +265  mA  

Net  Tail  +150  mA  

Net  send  

Net  send  5  seconds  inac5vity  

DownloadMgr.  Read()  

GZipStream.read()  JsonNode.Deserialize()  SQLiteDB.insert()  

18  

Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)   Courtesy:  Pathak  et  al  

Page 92: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Summary  

•  eprof:  fine-­‐grained  energy  profiler  –  Enables  opportuni5es  for  in-­‐depth  study  of  app  energy  consump5on    

•  Case  studies  of  popular  apps  energy  consump5on  –  65-­‐75%  of  app  energy  spent  in  tracking  user  and  fetching  ads  (for  example  angrybirds)  

•  Bundles:  IO  energy  representa5on  – Helps  debugging  smartphone  app  energy  

92  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 93: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Conclusion  and  Future  work  

•  Ebugs  need  to  be  dealt  with  – No-­‐sleep  ebug  debugging  studied  

•  Fine-­‐grained  energy  modeling  and  profiling  very  important  to  pinpoint  energy  boKleneck  and  ebugs    – Accoun5ng  is  tricky  – I/O  energy  consump5on  is  a  major  part  

•  Display  energy  modeling  and  profiling  is  s5ll  lacking  

93  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 94: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Online  Resources  •  Soot:  open  source  framework  for  analyzing  java  bytecode    –  hKp://www.sable.mcgill.ca/soot/  

•  ded:  decompiling  android  applica5on  tool  –  hKp://siis.cse.psu.edu/ded/  

•  SDK  rou5ne  tracinghKp://developer.android.com/reference/android/os/Debug.html  

•  gprof:  NDK  rou5ne  tracing  –  hKp://code.google.com/p/android-­‐ndk-­‐profiler/  

•  systemtap:  system  call  tracing  

94  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)  

Page 95: Cellular’Networks’and’Mobile’ Compung’ COMS’6998

Ques5ons?  

95  Cellular  Networks  and  Mobile  Compu5ng  (COMS  6998-­‐11)