Collaborative Detection of Energy Bugs Adam Oliner, Anand Iyer, and Ion Stoica UC Berkeley Eemil Lagerspetz, and Sasu Tarkoma U Helsinki Carat / Collaborative Detection of Energy Bugs 9/7/2018
Mobile is hot … sometimes, literally Carat / Collaborative Detection of Energy Bugs 9/7/2018
State of the Art Kill ALL your background apps Dim the screen Exchange it at the store Look at CPU utilization Uninstall the app and then reinstall it Restart Carat / Collaborative Detection of Energy Bugs 9/7/2018
Related Work Survey of forum posts re: energy bugs Abhinav Pathak, Y. Charlie Hu, Ming Zhang. Bootstrapping Energy Debugging on Smartphones: A First Look at Energy Bugs in Mobile Devices, HotNets’11 Mobile debugging framework proposal Sharad Agarwal, Ratul Mahajan, Alice Zheng, and Victor Bahl. There’s an app for that, but it doesn’t work. Diagnosing Mobile Applications in the Wild, HotNets’10 CarrierIQ, PowerTutor (Android), etc. Carat / Collaborative Detection of Energy Bugs 9/7/2018
Goals Characterize energy use on smartphones Identify energy bugs in the wild Provide data to help diagnose / fix them Carat / Collaborative Detection of Energy Bugs 9/7/2018
Energy Bug An energy bug is a system behavior that causes unexpectedly heavy use of energy and which is not intrinsic to providing the desired functionality. Carat / Collaborative Detection of Energy Bugs 9/7/2018
Collaborative Detection Community specifies expected behavior Statistical deviation is a bug Actionable Carat / Collaborative Detection of Energy Bugs 9/7/2018
What is Intrinsic? Carat / Collaborative Detection of Energy Bugs 9/7/2018
Is App X buggy? Carat / Collaborative Detection of Energy Bugs 9/7/2018
Carat Carat / Collaborative Detection of Energy Bugs 9/7/2018
Carat Architecture Carat / Collaborative Detection of Energy Bugs 9/7/2018
Sampling We collect... battery level, running apps, trigger OS version, device model, uuid +more on Android (cpu usage, app memory fractions, battery temp, battery voltage, ...) ... when... battery level or status changes location changes the user is using Carat Carat / Collaborative Detection of Energy Bugs 9/7/2018
Challenges Data will be difficult to collect Data will be noisy and incomplete Data will be biased Multiple confounding factors Carat / Collaborative Detection of Energy Bugs 9/7/2018
Privacy Concerns Opt-in EULA prior to installation Nothing personally identifying is collected Sampled data shown within the app Carat / Collaborative Detection of Energy Bugs 9/7/2018
5% Battery Level Granularity Deal with uncertainty using known points (BatteryLevelChanged event) Carat / Collaborative Detection of Energy Bugs 9/7/2018
Analysis Carat / Collaborative Detection of Energy Bugs 9/7/2018
Looks like it does, and it's not even parallel Does it scale? Looks like it does, and it's not even parallel Carat / Collaborative Detection of Energy Bugs 9/7/2018
Found 3 separate bugs injected into Mobile Wikipedia Can it find bugs? Found 3 separate bugs injected into Mobile Wikipedia Carat / Collaborative Detection of Energy Bugs 9/7/2018
Can it find real bugs? Found bugs corroborated by forum posts Kidle on 6 of our clients, forums blame WhisperSync over 3G. Fix by turning on WiFi and save 2h battery life Facebook was a bug for 24 of its 63 users No strong correlations, may be caused by workload iOS 5.0.1 used less energy than 5.0 in our data There is debate on which one is better. 5.1 improves on both in our data. Carat / Collaborative Detection of Energy Bugs 9/7/2018
Can it be accurate? Does sampling match reality? “Do not attempt to calculate battery drainage rate or battery time remaining” - iOS API Docs re: UIDeviceBatteryLevelDidChangeNotification Monsoon Power Monitor Ground truth Carat / Collaborative Detection of Energy Bugs 9/7/2018
Battery indicator agrees with the Power Monitor Carat / Collaborative Detection of Energy Bugs 9/7/2018
Battery drain rates distributions are also similar Carat / Collaborative Detection of Energy Bugs 9/7/2018
TestFlight Beta on iOS Carat / Collaborative Detection of Energy Bugs 9/7/2018
Number of Active Users Grew Quickly -20k samples today from up to 75 active users Carat / Collaborative Detection of Energy Bugs 9/7/2018
Top Devices/Carriers/OS versions Carat / Collaborative Detection of Energy Bugs 9/7/2018
Sampling Triggers Carat / Collaborative Detection of Energy Bugs 9/7/2018
Some Hogs/Bugs Carat / Collaborative Detection of Energy Bugs 9/7/2018
Next Steps Expand beta testing App Store API for developers Android port Platform for collaborative debugging Carat / Collaborative Detection of Energy Bugs 9/7/2018
End of Presentation carat.cs.berkeley.edu github.com/amplab/carat carat@eecs.berkeley.edu eemil.lagerspetz@cs.helsinki.fi Submitted to Mobicom Poster in NSDI HotDep in progress Carat / Collaborative Detection of Energy Bugs 9/7/2018