Abstract
Non-CPU devices on a modern system-on-a-chip (SoC), ranging from accelerators to I/O controllers, account for a significant portion of the chip area. It is therefore vital for system energy efficiency that idle devices can enter a low-power state while still meeting the performance expectation. This is called device runtime Power Management (PM) for which individual device drivers in commodity OSes are held responsible today. Based on the observations of existing drivers and their evolution, we consider it harmful to rely on drivers for device runtime PM. This paper identifies three pieces of information as essential to device runtime PM, and shows that they can be obtained without involving drivers, either by using a software-only approach, or more efficiently, by adding one register bit to each device. We thus suggest a structural change to the current Linux runtime PM framework, replacing the PM code in all applicable drivers with a single kernel module called the central PM agent. Experimental evaluations show that the central PM agent is just as effective as hand-tuned driver PM code. The paper also presents a tool called PowerAdvisor that simplifies driver PM efforts under the current Linux runtime PM framework. PowerAdvisor analyzes execution traces and suggests where to insert PM calls in driver source code. Despite being a best-effort tool, PowerAdvisor not only reproduces hand-tuned PM code from stock drivers, but also correctly suggests PM code never known before. Overall, our experience shows that it is promising to ultimately free driver developers from manual PM.
- NVIDIA, "NVIDIA Tegra K1 mobile processor technical reference manual," 2014.Google Scholar
- Texas Instruments, "OMAP4460 multimedia device technical reference manual," 2011.Google Scholar
- Samsung, "Samsung Exynos 5 Quad (Exynos 5250) RISC microprocessor user's manual," 2012.Google Scholar
- Texas Instruments, "Multicore DSP+ARM KeyStone II System-on-Chip (SoC) technical reference manual," 2013.Google Scholar
- M. Mehendale, S. Das, M. Sharma, M. Mody, R. Reddy, J. Meehan, H. Tamama, B. Carlson, and M. Polley, "A true multistandard, programmable, low-power, full HD video-codec engine for smartphone SoC," in Digest of Technical Papers of IEEE Int. Solid-State Circuits Conf. (ISSCC), pp. 226--228, 2012.Google Scholar
- K. Flautner and T. Mudge, "Vertigo: automatic performance-setting for Linux," in Proc. USENIX Symp. Operating Systems Design and Implementation (OSDI), pp. 105--116, 2002. Google Scholar
Digital Library
- R. J. Wysocki, "Power management in the Linux kernel: current status and future." http://events.linuxfoundation.org/sites/events/files/slides/kernel_PM_plain.pdf, 2013.Google Scholar
- NVDIA, "NVIDIA Tegra 4 4-plus-1 quad-core processors technical reference manual," 2013.Google Scholar
- Freescale, "i.MX 6Dual/6Quad applications processor reference manual," 2013.Google Scholar
- Intel, "Intel Atom processor Z36xxx and Z37xxx series datasheet," 2013.Google Scholar
- P. Choudhary and D. Marculescu, "Power management of voltage/frequency island-based systems using hardware-based methods," IEEE Transactions on Very Large Scale Integration (VLSI) Systems, pp. 427--438, 2009. Google Scholar
Digital Library
- T. Hattori, T. lrita, M. Ito, E. Yamamoto, H. Kato, G. Sado, Y. Yamada, K. Nishiyama, H. Yagi, T. Koike, Y. Tsuchihashi, M. Higashida, H. Asano, I. Hayashibara, K. Tatezawa, Y. Shimazaki, N. Morino, K. Hirose, S. Tamaki, S. Yoshioka, R. Tsuchihashi, N. Arai, T. Akiyama, and K. Ohno, "A power management scheme controlling 20 power domains for a single-chip mobile processor," in Digest of Technical Papers of IEEE Int. Solid-State Circuits Conf. (ISSCC), pp. 2210--2219, 2006.Google Scholar
- G. Raja, "OMAP2+: UART: add runtime pm support for OMAP-serial driver." http://www.spinics.net/lists/linux-omap/msg58443.html, 2011.Google Scholar
- M. Brown, "Input: samsung-keypad: implement runtime power management support." http://www.spinics.net/lists/linux-input/msg18796.html, 2011.Google Scholar
- P. Walmsley, "Watchdog: OMAP wdt: add fine grain runtime PM." http://permalink.gmane.org/gmane.linux.ports.arm.omap/54608, 2011.Google Scholar
- V. Gautam, "DWC3/xHCI: enable runtime power management." https://lkml.org/lkml/2013/1/28/229, 2013.Google Scholar
- R. Quadros, "USB: implement runtime idling and remote wakeup for OMAP EHCI controller." https://lkml.org/lkml/2013/7/10/355, 2013.Google Scholar
- F. Balbi, "GPIO: OMAP: be more aggressive with pm runtime." http://www.spinics.net/lists/linux-omap/msg64196.html, 2012.Google Scholar
- A. Dong, "MMC: sdhci-esdhc-imx: add runtime PM support." http://lists.infradead.org/pipermail/linux-arm-kernel/2013-October/208191.html, 2013.Google Scholar
- R. Zhao, "I2C: IMX: disable clock when it's possible to save power." http://lists.infradead.org/pipermail/linux-arm-kernel/2009-October/002455.html, 2009.Google Scholar
- S. Huang, "SPI: spi-imx: only enable the clocks when we start to transfer a message." http://lists.infradead.org/pipermail/linux-arm-kernel/2013-October/206797.html, 2013.Google Scholar
- M. Brown, "SPI/s3c64xx: implement runtime PM support." http://www.spinics.net/lists/linux-samsung-soc/msg08912.html, 2012.Google Scholar
- S. Irani, S. Shukla, and R. Gupta, "Online strategies for dynamic power management in systems with multiple power-saving states," ACM Transaction on Embedded Computing Systems (TECS), vol. 2, no. 3, pp. 325--346, 2003. Google Scholar
Digital Library
- T. Simunic, L. Beniani, and G. De Micheli, "Event-driven power management of portable systems," in Proc. Int. Symp. System Synthesis, pp. 18--23, 1999. Google Scholar
Digital Library
- Q. Qiu and M. Pedram, "Dynamic power management based on continuous-time Markov decision processes," in Proc. ACM/IEEE Design Automation Conf. (DAC), 1999. Google Scholar
Digital Library
- R. Muralidhar, H. Seshadri, V. Bhimarao, V. Rudramuni, I. Mansoor, S. Thomas, B. Veera, Y. Singh, and S. Ramachandra, "Experiences with power management enabling on the Intel Medfield phone," in Proc. Linux Symposium, 2012.Google Scholar
- Xilinx, "Zynq-7000 all programmable soc technical reference manual," 2014.Google Scholar
- Xilinx, "LogiCORE IP AXI IIC Bus Interface v2.0." http://japan.xilinx.com/support/documentation/ip_documentation/axi_iic/v2_0/pg090-axi-iic.pdf, 2014.Google Scholar
- R. Herveille, "Opencores project: I2C." http://opencores.org/project,i2c.Google Scholar
- R. Herveille, "Opencores project: simple SPI." http://opencores.org/project,simple_spi.Google Scholar
- eLinux.org, "PandaBoard Power Measurements." http://elinux.org/PandaBoard_Power_Measurements.Google Scholar
- C. Shepard, A. Rahmati, C. Tossell, L. Zhong, and P. Kortum, "Livelab: Measuring wireless networks and smartphone users in the field," SIGMETRICS Performance Evaluation Review, vol. 38, pp. 15--20, Jan. 2011. Google Scholar
Digital Library
- Verizon Wireless, "A smartphone is only as good as its battery life." http://www.verizonwireless.com/mobile-living/tech-smarts/smartphones-with-long-lasting-battery-life/, 2013.Google Scholar
- M. Gates, A. Tirumala, J. Ferguson, J. Dugan, F. Qin, K. Gibbs, and J. Estabrook, "Iperf: The TCP/UDP bandwidth measurement tool, version 2.0.5." https://iperf.fr/.Google Scholar
- Freescale, "Xtrinsic MMA8452Q 3-axis, 12-bit/8-bit digital accelerometer." http://www.freescale.com/files/sensors/doc/data_sheet/MMA8452Q.pdf, 2014.Google Scholar
- C. Cadar, D. Dunbar, and D. Engler, "KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs," in Proc. USENIX Symp. Operating Systems Design and Implementation (OSDI), pp. 209--224, 2008. Google Scholar
Digital Library
- L. De Moura and N. Bjørner, "Z3: an efficient SMT solver," in Tools and Algorithms for the Construction and Analysis of Systems, pp. 337--340, 2008. Google Scholar
Digital Library
- IBM, "CPLEX Optimizer." http://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/.Google Scholar
- H. Esmaeilzadeh, E. Blem, R. St. Amant, K. Sankaralingam, and D. Burger, "Dark silicon and the end of multicore scaling," in Proc. ACM/IEEE Int. Symp. Computer Architecture (ISCA), pp. 365--376, 2011. Google Scholar
Digital Library
- A. Pathak, A. Jindal, Y. C. Hu, and S. P. Midkiff, "What is keeping my phone awake? Characterizing and detecting no-sleep energy bugs in smartphone apps," in Proc. Int. Conf. Mobile Systems, Applications, and Services (MobiSys), pp. 267--280, 2012. Google Scholar
Digital Library
- A. Jindal, A. Pathak, Y. C. Hu, and S. Midkiff, "Hypnos: understanding and treating sleep conflicts in smartphones," in Proc. ACM European Conf. Computer System (EuroSys), pp. 253--266, 2013. Google Scholar
Digital Library
- R. J. Wysocki, "Technical background of the Android suspend blockers controversy." lwn.net/images/pdf/suspend_blockers.pdf, 2010.Google Scholar
- X. Ma, P. Huang, X. Jin, P. Wang, S. Park, D. Shen, Y. Zhou, L. K. Saul, and G. M. Voelker, "eDoctor: automatically diagnosing abnormal battery drain issues on smartphones," in Proc. USENIX Symp. Networked Systems Design and Implementation (NSDI), pp. 57--70, 2013. Google Scholar
Digital Library
- A. Weissel and F. Bellosa, "Process cruise control: Event-driven clock scaling for dynamic power management," in Proc. Int. Conf. Compilers, Architecture, and Synthesis for Embedded Systems (CASES), pp. 238--246, 2002. Google Scholar
Digital Library
- D. C. Snowdon, E. Le Sueur, S. M. Petters, and G. Heiser, "Koala: a platform for OS-level power management," in Proc. ACM European Conf. Computer Systems (EuroSys), pp. 289--302, 2009. Google Scholar
Digital Library
- A. Pathania, Q. Jiao, A. Prakash, and T. Mitra, "Integrated CPU-GPU power management for 3D mobile games," in Proc. ACM/IEEE Design Automation Conf. (DAC), pp. 40:1--40:6, 2014. Google Scholar
Digital Library
- V. Gupta, P. Brett, D. A. Koufaty, D. Reddy, S. Hahn, K. Schwan, and G. Srinivasa, "The forgotten 'uncore': on the energy-efficiency of heterogeneous cores," in USENIX Annual Technical Conf. (ATC), pp. 367--372, 2012. Google Scholar
Digital Library
- K. Klues, V. Handziski, C. Lu, A. Wolisz, D. Culler, D. Gay, and P. Levis, "Integrating concurrency control and energy management in device drivers," in Proc. ACM Symp. Operating Systems Principles (SOSP), pp. 251--264, 2007. Google Scholar
Digital Library
- M. Anand, E. B. Nightingale, and J. Flinn, "Ghosts in the machine: interfaces for better power management," in Proc. ACM Int. Conf. Mobile Systems, Applications, and Services (MobiSys), pp. 23--35, 2004. Google Scholar
Digital Library
- C. Xu, X. Lin, and L. Zhong, "Device drivers should not do power management," in Proc. ACM SIGOPS Asia-Pacific Wrkshp. Systems (APSYS), June 2014. Google Scholar
Digital Library
- E. Clarke, D. Kroening, and F. Lerda, "A tool for checking ANSI-C programs," in Tools and Algorithms for the Construction and Analysis of Systems, pp. 168--176, 2004.Google Scholar
- L. Ryzhyk, P. Chubb, I. Kuz, E. Le Sueur, and G. Heiser, "Automatic device driver synthesis with Termite," in Proc. ACM Symp. Operating Systems Principles (SOSP), pp. 73--86, 2009. Google Scholar
Digital Library
- N. FitzRoy-Dale and A. Carroll, injectevents. https://github.com/xaaronc/injectevents.Google Scholar
Index Terms
Automated OS-level Device Runtime Power Management
Recommendations
Automated OS-level Device Runtime Power Management
ASPLOS '15: Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating SystemsNon-CPU devices on a modern system-on-a-chip (SoC), ranging from accelerators to I/O controllers, account for a significant portion of the chip area. It is therefore vital for system energy efficiency that idle devices can enter a low-power state while ...
Automated OS-level Device Runtime Power Management
ASPLOS'15Non-CPU devices on a modern system-on-a-chip (SoC), ranging from accelerators to I/O controllers, account for a significant portion of the chip area. It is therefore vital for system energy efficiency that idle devices can enter a low-power state while ...
Unified hardware abstraction layer with device masquerade
SAC '18: Proceedings of the 33rd Annual ACM Symposium on Applied ComputingDevice drivers are a major concern for existing and new operating systems (OSs) in terms of the development cost and code quality. Unfortunately, the OS-dependent nature of device drivers makes their reuse or unification complicated because the ...







Comments