Sorry, you need to enable JavaScript to visit this website.


The pm-graph project provides sleepgraph and bootgraph tools for system developers to visualize the activity in suspend/resume and boot, allowing them to identify inefficiencies and bottlenecks. Using the sleepgraph and bootgraph tools is an excellent way to save power in Linux* platforms, whether in mobile devices using Intel® technology or large-scale server farms. Optimizing the performance of suspend/resume has become extremely important because the more time spent entering and exiting low power modes, the less the system can be in use.

  • Usage

    Downloading & installing pm-graph The tools can most easily be installed via git clone and make install $> git clone $> cd pm-graph $> sudo make install $> man sleepgraph A snapshot of the tool is also found in the kernel source under tools/power/pm-graph. The pm-graph tools run with python2 or python3, the choice is made by the /usr...

    By Todd Brandt on May 23, 2014
  • Endurance Testing

    The Value of Endurance Testing The best way to gauge the health of a system is to run a large series of suspend/resumes over an extended period and analyze the data for flaws. This can be accomplished with sleepgraph's -multi argument. It will run a series of suspend/resume events while capturing timelines for each and generating a high level summary at the end for easy perusal of the data....

    By Todd Brandt on Oct 18, 2019
  • Config File Format

    General Options [Settings] # Verbosity # print verbose messages (default: false) verbose: false # Suspend Mode # e.g. standby, mem, freeze, disk (default: mem) mode: mem # Output Directory Format # output folder for html, ftrace, and dmesg. Use {date} and {time} for current values output-dir: suspend-{hostname}-{date}-{time} # Automatic Wakeup # Use rtcwake to autoresume after X...

    By Todd Brandt on Aug 19, 2016
  • Testing on Android

    Apply the kernel patches The android kernel first needs to be patched to provide the proper ftrace events that analyze_suspend reads. This functionality is available in upstream 3.16, but if your android build uses 3.10 or 3.14 I've backported the code to these two versions. Download the patch(es), apply them to the android kernel you're testing and reinstall: kernel v3.10: 1-...

    By Todd Brandt on Sep 16, 2014
  • Building the linux kernel

    Installing the Operating System The safest way to test the latest kernel is to install a basic OS as the vehicle, such as ubuntu or fedora. if you have a linux OS already installed on your test system then skip to the section on building the kernel. For the purposes of this documentation, I'm assuming the use of Ubuntu (or at the very least a debian based linux distro). Fedora uses RPM files for...

    By Todd Brandt on May 23, 2014