skip to main content
research-article

Automated OS-level Device Runtime Power Management

Published:14 March 2015Publication History
Skip Abstract Section

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.

References

  1. NVIDIA, "NVIDIA Tegra K1 mobile processor technical reference manual," 2014.Google ScholarGoogle Scholar
  2. Texas Instruments, "OMAP4460 multimedia device technical reference manual," 2011.Google ScholarGoogle Scholar
  3. Samsung, "Samsung Exynos 5 Quad (Exynos 5250) RISC microprocessor user's manual," 2012.Google ScholarGoogle Scholar
  4. Texas Instruments, "Multicore DSP+ARM KeyStone II System-on-Chip (SoC) technical reference manual," 2013.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. NVDIA, "NVIDIA Tegra 4 4-plus-1 quad-core processors technical reference manual," 2013.Google ScholarGoogle Scholar
  9. Freescale, "i.MX 6Dual/6Quad applications processor reference manual," 2013.Google ScholarGoogle Scholar
  10. Intel, "Intel Atom processor Z36xxx and Z37xxx series datasheet," 2013.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. G. Raja, "OMAP2+: UART: add runtime pm support for OMAP-serial driver." http://www.spinics.net/lists/linux-omap/msg58443.html, 2011.Google ScholarGoogle Scholar
  14. M. Brown, "Input: samsung-keypad: implement runtime power management support." http://www.spinics.net/lists/linux-input/msg18796.html, 2011.Google ScholarGoogle Scholar
  15. P. Walmsley, "Watchdog: OMAP wdt: add fine grain runtime PM." http://permalink.gmane.org/gmane.linux.ports.arm.omap/54608, 2011.Google ScholarGoogle Scholar
  16. V. Gautam, "DWC3/xHCI: enable runtime power management." https://lkml.org/lkml/2013/1/28/229, 2013.Google ScholarGoogle Scholar
  17. R. Quadros, "USB: implement runtime idling and remote wakeup for OMAP EHCI controller." https://lkml.org/lkml/2013/7/10/355, 2013.Google ScholarGoogle Scholar
  18. F. Balbi, "GPIO: OMAP: be more aggressive with pm runtime." http://www.spinics.net/lists/linux-omap/msg64196.html, 2012.Google ScholarGoogle Scholar
  19. A. Dong, "MMC: sdhci-esdhc-imx: add runtime PM support." http://lists.infradead.org/pipermail/linux-arm-kernel/2013-October/208191.html, 2013.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle Scholar
  22. M. Brown, "SPI/s3c64xx: implement runtime PM support." http://www.spinics.net/lists/linux-samsung-soc/msg08912.html, 2012.Google ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle Scholar
  27. Xilinx, "Zynq-7000 all programmable soc technical reference manual," 2014.Google ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. R. Herveille, "Opencores project: I2C." http://opencores.org/project,i2c.Google ScholarGoogle Scholar
  30. R. Herveille, "Opencores project: simple SPI." http://opencores.org/project,simple_spi.Google ScholarGoogle Scholar
  31. eLinux.org, "PandaBoard Power Measurements." http://elinux.org/PandaBoard_Power_Measurements.Google ScholarGoogle Scholar
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. Freescale, "Xtrinsic MMA8452Q 3-axis, 12-bit/8-bit digital accelerometer." http://www.freescale.com/files/sensors/doc/data_sheet/MMA8452Q.pdf, 2014.Google ScholarGoogle Scholar
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. IBM, "CPLEX Optimizer." http://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/.Google ScholarGoogle Scholar
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  42. R. J. Wysocki, "Technical background of the Android suspend blockers controversy." lwn.net/images/pdf/suspend_blockers.pdf, 2010.Google ScholarGoogle Scholar
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  48. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  51. 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 ScholarGoogle Scholar
  52. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  53. N. FitzRoy-Dale and A. Carroll, injectevents. https://github.com/xaaronc/injectevents.Google ScholarGoogle Scholar

Index Terms

  1. Automated OS-level Device Runtime Power Management

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 50, Issue 4
        ASPLOS '15
        April 2015
        676 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2775054
        • Editor:
        • Andy Gill
        Issue’s Table of Contents
        • cover image ACM Conferences
          ASPLOS '15: Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems
          March 2015
          720 pages
          ISBN:9781450328357
          DOI:10.1145/2694344

        Copyright © 2015 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 14 March 2015

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!