understanding the characteristics of android wear os
play

Understanding the Characteristics of Android Wear OS Renju Liu and - PowerPoint PPT Presentation

Understanding the Characteristics of Android Wear OS Renju Liu and Felix Xiaozhu Lin Purdue ECE The Wearable stack 5 Top questions Wearables should enjoy Baremetal performance Baremetal efficiency In this talk: Android Wear


  1. Understanding the Characteristics of Android Wear OS Renju Liu and Felix Xiaozhu Lin Purdue ECE

  2. The Wearable stack 5

  3. Top questions • Wearables should enjoy – Baremetal performance – Baremetal efficiency • In this talk: Android Wear – Are we close to baremetal? – What is going on inside ? – How should the OS evolve? 6

  4. Observation -- Symptoms • The current performance & efficiency are far from baremetal Clock face update • Pacing – inefficient • face update: 400ms 88% busy 7

  5. Observation -- Symptoms • The current performance & efficiency are far from baremetal Launch “settings” • Pacing – inefficient • face update: 400ms 88% busy • Racing – slow • Launch an in-mem app: 1 sec 9

  6. What happens underneath? User Launch action App UI touch starts shown 177 ms 810 ms 11

  7. What happens underneath? User Launch action App UI touch starts shown Power / mW 1000 500 0 177 ms 810 ms 12

  8. What happens underneath? User Launch action App UI touch starts shown Phase 1 Phase 2 Power / mW 1000 500 0 CPU Exec. Busy with various tasks Idle 177 ms 810 ms 13

  9. What happens underneath? User Launch action App UI touch starts shown Phase 1 Phase 2 Power / mW 1000 500 0 CPU Exec. Busy with various tasks Idle 177 ms 810 ms 28 ms 130 ms 19 ms 14

  10. Four Aspects CPU busy? CPU idle? Thread-level parallelism (TLP) Microarchitectural behaviors Won’t talk about our methodologies 20

  11. Profiling – Core Use Scenarios Wakeup Single Input Sensing Interaction Update launch apps Accel Game notification palming heart notes wrist… voice… baro navigation 21

  12. CPU busy OS execution dominates CPU usage. CPU idle TLP uArch 100% 75% 50% 25% 0% update notif wrist touch lch.set lch.calc lch.game palming voice game notes navi accel heart baro Wakeup Single In. Interact. Sensing 26

  13. CPU busy OS execution dominates CPU usage. CPU idle TLP uArch OS:Clockwork OS:daemons 100% 75% 50% 25% 0% update notif wrist touch lch.set lch.calc lch.game palming voice game notes navi accel heart baro Wakeup Single In. Interact. Sensing 27

  14. CPU busy OS execution dominates CPU usage. CPU idle TLP uArch Apps OS:Clockwork OS:daemons 100% 75% 50% 25% 0% update notif wrist touch lch.set lch.calc lch.game palming voice game notes navi accel heart baro Wakeup Single In. Interact. Sensing 28

  15. CPU busy OS execution dominates CPU usage. CPU idle TLP uArch Idle Apps OS:Clockwork OS:daemons 100% 75% 50% 25% 0% update notif wrist touch lch.set lch.calc lch.game palming voice game notes navi accel heart baro Wakeup Single In. Interact. Sensing 29

  16. CPU busy OS execution dominates CPU usage. CPU idle TLP uArch Idle Apps OS:Clockwork OS:daemons 100% 75% 50% 25% 0% update notif wrist touch lch.set lch.calc lch.game palming voice game notes navi accel heart baro Wakeup Single In. Interact. Sensing 30

  17. CPU busy OS execution dominates CPU usage. CPU idle TLP uArch 31

  18. CPU busy OS execution dominates CPU usage. CPU idle TLP uArch 32

  19. CPU busy Costly OS services are ... CPU idle TLP uArch 33

  20. CPU busy Costly OS services are likely cruft. CPU idle TLP uArch 34

  21. Hot functions: CPU busy CPU idle highly skewed distribution TLP uArch Top 5 à >20% CPU cycles Top 50 à >50% CPU cycles 35

  22. Hot functions: CPU busy CPU idle highly skewed distribution TLP uArch Top 5 à >20% CPU cycles Top 50 à >50% CPU cycles Manipulating basic data structures Legacy/improper OS designs 36

  23. Backlight UI layout low-mem killer Anecdotes Hot functions: CPU busy CPU idle highly skewed distribution TLP uArch Top 5 à >20% CPU cycles Top 50 à >50% CPU cycles Manipulating basic data structures Legacy/improper OS designs 37

  24. Idle episodes: plentiful and CPU busy CPU idle of various lengths TLP uArch Time Pct. Pct. Overall Episodes (ms) Explained 614.1 17.1% 376 100.0% notes 843.3 50.5% 352 100.0% voice 722.6 50.9% 205 99.9% lch.game 185.2 25.6% 110 92.9% lch.calc 153.6 15.6% 120 91.4% lch.set 16.8 10.6% 6 100.0% touch 223.0 61.2% 44 100.0% update 2173.0 52.80% 912 100.0% navi 4035.6 86.80% 277 100.0% notif 38

  25. CPU busy Idle anomalies are caused by … CPU idle TLP uArch 0 250 500 750 Time Pct. Pct. Overall Episodes (ms) Explained Device suspend notes 614.1 17.1% 376 100.0% notes Voice UI 843.3 50.5% 352 100.0% voice Cont. interaction lch.game 722.6 50.9% 205 99.9% lch.game Cont. interact.+NetI/O 185.2 25.6% 110 92.9% lch.calc lch.set 153.6 15.6% 120 91.4% lch.set Storage I/O 16.8 10.6% 6 100.0% touch User think update 223.0 61.2% 44 100.0% update Bluetooth tail time navi OS shell policy 2173.0 52.80% 912 100.0% navi notif App policy 4035.6 86.80% 277 100.0% notif 0 2000 4000 Time / ms 39

  26. Anecdote Voice UI CPU busy Idle anomalies are caused by … CPU idle TLP uArch 0 250 500 750 Time Pct. Pct. Overall Episodes (ms) Explained Device suspend notes 614.1 17.1% 376 100.0% notes Voice UI 843.3 50.5% 352 100.0% voice Cont. interaction lch.game 722.6 50.9% 205 99.9% lch.game Cont. interact.+NetI/O 185.2 25.6% 110 92.9% lch.calc lch.set 153.6 15.6% 120 91.4% lch.set Storage I/O 16.8 10.6% 6 100.0% touch User think update 223.0 61.2% 44 100.0% update Bluetooth tail time navi OS shell policy 2173.0 52.80% 912 100.0% navi notif App policy 4035.6 86.80% 277 100.0% notif 0 2000 4000 Time / ms Legacy/improper OS designs Performance overprovisioning 40

  27. CPU busy Substantial TLP on a par with desktop CPU idle TLP uArch # of concurrent threads 42

  28. CPU busy Substantial TLP on a par with desktop CPU idle TLP uArch # of concurrent threads 43

  29. CPU busy Substantial TLP on a par with desktop CPU idle TLP uArch TLP: avg. busy CPU cores (over non-idle time) # of concurrent threads 44

  30. CPU busy …due to short interactions. CPU idle TLP uArch TLP: avg. busy CPU cores (over non-idle time) # of concurrent threads 45

  31. CPU busy Apps are mostly single-threaded; CPU idle OS contributes to TLP significantly. TLP uArch 46

  32. CPU busy CPU idle Wearable suffers from uArch inefficiency TLP uArch Cycles-per-instruction (lower is better) 2 -- 5 (high!) 47

  33. CPU busy CPU idle Wearable suffers from uArch inefficiency TLP uArch Cycles-per-instruction (lower is better) 2 -- 5 (high!) Smartphone as a comparison 1.3 -- 2.5 web rendering <2 SPEC INT 48

  34. CPU busy CPU idle Wearable suffers from uArch inefficiency TLP uArch Cycles-per-instruction (lower is better) 2 -- 5 (high!) Smartphone as a comparison 1.3 -- 2.5 web rendering <2 SPEC INT 49

  35. CPU busy CPU idle Wearable suffers from uArch inefficiency TLP uArch Cycles-per-instruction (lower is better) 2 -- 5 (high!) Smartphone as a comparison 1.3 -- 2.5 web rendering <2 SPEC INT 50

  36. CPU busy The major cause: complex OS code CPU idle (L1 icache, iTLB, and branch predictor) TLP uArch 51

  37. CPU busy The major cause: complex OS code CPU idle (L1 icache, iTLB, and branch predictor) TLP uArch uArch problem will NOT be gone with future wearable CPUs 52

  38. Four Aspects CPU busy ¨ OS dominates ¨ Lots of cruft ¨ Skewed hot functions ¨ Legacy bottlenecks CPU idle ¨ Anomalous ¨ OS flaws ¨ Too much performance Thread-level parallelism ¨ Desktop-like ¨ OS-contributed Microarchitectural behaviors ¨ Mismatch ¨ OS code complexity 54

  39. Repair, don’t overhaul (yet) CPU busy ¨ OS dominates ¨ Lots of cruft ¨ Skewed hot functions ¨ Legacy bottlenecks CPU idle ¨ Anomalous ¨ OS flaws ¨ Too much performance Thread-level parallelism ¨ Desktop-like ¨ OS-contributed Microarchitectural behaviors ¨ Mismatch ¨ OS code complexity 55

  40. How about after that? (i.e. “next-gen wearable OS”) We probably will reach a point when OS overhaul/redesign is justified. Specializing OS for common, single-app scenarios 56

  41. Restructuring OS for Wearable Specializing OS for common, single-app scenarios Full Full OS Daemons … Simple Simple Activity Window Manager Manager Kernel 58

  42. Restructuring OS for Wearable Apps Full Full OS Daemons … Simple Simple Activity Window Manager Manager Kernel 59

  43. Restructuring OS for Wearable Apps Simple Simple OS Daemons … Full Full Activity Window Manager Manager Kernel 60

  44. Final takeaway • Wearables: unique usage and hardware • Many mobile OS tradeoffs are invalid – efficiency v.s. flexibility & programming ease • Immediate actions: fixing individual OS components • Future: OS specialization may be needed Tools, data, and benchmark videos xsel.rocks/p/wear 66

  45. FAQ • You forgot Apple Watch or Samsung Tizen. • Isn’t your discovery just some oversight of Google engineers? • Aren’t these things easy to fix? • Doesn’t multicore wearable sound crazy? • Power! I want to learn about power. • I bet the Android Wear team already fixed these! xsel.rocks/p/wear 67

  46. Has Android Wear improved? 68

  47. 69

Recommend


More recommend