Efficient software-based fault isolation
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Improving the reliability of commodity operating systems
ACM Transactions on Computer Systems (TOCS)
Thorough static analysis of device drivers
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
XFI: software guards for system address spaces
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Energy consumption in mobile phones: a measurement study and implications for network applications
Proceedings of the 9th ACM SIGCOMM conference on Internet measurement conference
Device driver safety through a reference validation mechanism
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Testing closed-source binary device drivers with DDT
USENIXATC'10 Proceedings of the 2010 USENIX conference on USENIX annual technical conference
Characterizing radio resource allocation for 3G networks
IMC '10 Proceedings of the 10th ACM SIGCOMM conference on Internet measurement
S2E: a platform for in-vivo multi-path analysis of software systems
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Specification and verification: the Spec# experience
Communications of the ACM
Fine-grained power modeling for smartphones using system call tracing
Proceedings of the sixth conference on Computer systems
Profiling resource usage for mobile applications: a cross-layer approach
MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications, and services
Bootstrapping energy debugging on smartphones: a first look at energy bugs in mobile devices
Proceedings of the 10th ACM Workshop on Hot Topics in Networks
Static analysis of device drivers: we can do better!
Proceedings of the Second Asia-Pacific Workshop on Systems
Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof
Proceedings of the 7th ACM european conference on Computer Systems
A close examination of performance and power characteristics of 4G LTE networks
Proceedings of the 10th international conference on Mobile systems, applications, and services
Proceedings of the 10th international conference on Mobile systems, applications, and services
Collaborative energy debugging for mobile devices
HotDep'12 Proceedings of the Eighth USENIX conference on Hot Topics in System Dependability
SymDrive: testing drivers without devices
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
RILAnalyzer: a comprehensive 3G monitor on your phone
Proceedings of the 2013 conference on Internet measurement conference
On death, taxes, and sleep disorder bugs in smartphones
Proceedings of the Workshop on Power-Aware Computing and Systems
Hi-index | 0.00 |
To maximally conserve the critical resource of battery energy, smartphone OSes implement an aggressive system suspend policy that suspends the whole system after a brief period of user inactivity. This burdens developers with the responsibility of keeping the system on, or waking it up, to execute time-sensitive code. Developer mistakes in using the explicit power management unavoidably give rise to energy bugs, which cause significant, unexpected battery drain. In this paper, we study a new class of energy bugs, called sleep conflicts, which can happen in smartphone device drivers. Sleep conflict happens when a component in a high power state is unable to transition back to the base power state because the system is suspended when the device driver code responsible for driving the transition is supposed to execute. We illustrate the root cause of sleep conflicts, develop a classification of the four types of sleep conflicts, and finally present a runtime system that performs sleep conflict avoidance, along with a simple yet effective pre-deployment testing scheme. We have implemented and evaluated our system on two Android smartphones. Our testing scheme detects several sleep conflicts in WiFi and vibrator drivers, and our runtime avoidance scheme effectively prevents sleep conflicts from draining the battery.