Runtime power management (PM) of a system-on-chip (SoC) is essential to the energy efficiency of an embedded system. In Linux, device runtime PM is the responsibility of device drivers, which unfortunately implement runtime PM poorly in most cases.

We offer two solutions towards better runtime PM:

  • Central PM Agent: A kernel module that provides runtime PM to all applicable devices, replacing the runtime PM code in individual drivers.

  • PowerAdvisor: A software tool that helps driver developers to write proper runtime PM code under the current Linux runtime PM framework.

Publications

People

Software

  • Example drivers with no or unoptimized power management.

  • The software-based Central PM Agent (download): the tarball includes a patch to the Linux kernel and the source code of the Central PM Agent kernel module. The target platform is OMAP4430/4460.

  • The hardware-assisted Central PM Agent (download): the tarball includes the source code of the modified FPGA IPs and a patch to the Linux kernel. The target platform is Zynq-7000 SoC.

  • PowerAdvisor (download): the tarball includes execution traces of several drivers and a script for processing the traces. The target platform is OMAP4430/4460.

Traces Used in Evaluation

  • The user input trace used in the evaluation in section 7.1.1 of the ASPLOS’15 paper (downlaod).

Acknowledgement

  • This work was supported in part by NSF Awards CNS #1054693, CNS #1218041, and CNS #1422312