SHF: Small: Detecting and Mitigating Smartphone Energy Bugs using Compiler and Runtime Analysis
Purdue University, West Lafayette IN
Investigators
Abstract
Smartphones are becoming the predominant computing device throughout the world. Because of their lower cost relative to laptops and desktops, they have become an important device for bringing computing to disadvantaged people in both the developed and undeveloped worlds. Smartphones differ from traditional computing devices in that their primary power source is a battery, and they are expected to operate for a day or more on a single charge. This has forced the abandonment of traditional, automatic power management techniques and adoption of manual programmer management of power and power-consuming hardware, i.e., "power-encumbered programming." This in turn has led to "energy bugs," which cause apps to fail and to reduce battery life. The proposed work will develop tools to automatically detect energy bugs resulting from power-encumbered programming, increasing reliability and battery life, and bringing a better user experience to hundreds of millions of users. To increase battery life, a smartphone OS constantly attempts to turn off a phone. Apps contain time-critical sections, i.e., program regions where the phone must stay on to function correctly. Power-encumbered programming requires the programmer use wakelocks to keep the phone hardware on during a time-critical section (to ensure an app functions correctly), but no longer (to minimize battery drain.) A correct app has a perfect correspondence between regions where wakelocks keep the phone awake and time-critical sections. The proposed research focuses on runtime and compile-time techniques to automatically identify time-critical sections and regions protected by wakelocks, and to use that information to automatically identify and prevent energy bugs in apps. Because smartphone apps are event-driven programs, techniques to analyze event-driven code will be developed, and these techniques should be broadly applicable to the compile-time analysis of general event-driven programs. Successful completion of this work will lead to automatic techniques for detecting an ameliorating energy bugs, which in turn will maximize the available battery life, increase the reliability of smartphones, and lead to significant advances in the compiler analysis of event-driven programs.
View original record on NSF Award Search →