pm-graph
The Value of the pm-graph Project
System developers can access the sleepgraph and bootgraph tools to visualize the activity in suspend, resume, and boot for Linux* systems. These tools:
- Enable users to identify inefficiencies and bottlenecks.
- Provide guidance for saving power in Linux* platforms, whether in mobile devices using Intel® technology or large-scale server farms.
Optimizing the performance of suspend and resume for the power mode has become extremely important. The more time spent entering and exiting low-power modes, the less the system can be in use.
Using a kernel image built with a few extra options enabled, the tools run a suspend or boot, and capture dmesg and ftrace data. This data is transformed into a set of timelines and a call graph to give a quick and detailed view of which devices and kernel processes are taking the most time in suspend, resume, and boot. Each tool outputs a single HTML file that uses embedded CSS and JavaScript* to create the timelines and call graphs. The file can be viewed in any Linux* browser, such as Firefox* or Chromium*.
Who This Is For
This project is for kernel developers, testers, debuggers, and other contributors working on client or server systems that are based on Intel® processors.
Project Specifics
This open source project is distributed under the open source GNU* General Public License v2. pm-graph is written entirely in Python*, which has a mature and established codebase.
It is optimized for Intel processors.
Intel's Contributions to pm-graph
Intel contributes to the Linux kernel code base and the power management subsystem where suspend and resume are handled. As a result, the ecosystem is enabled to build more efficient client and server systems.
News & Blogs
Optimize USB Resume Code by Using Minimum Delays
The USB resume code in the kernel uses a set of hard-coded delay values that are defined in the USB v2.0 specification.
Fix a Delay
Learn how to troubleshoot and resolve an error that occurs during the resume_complete phase.
USB Resume with Parallel Enumeration of Separate Hosts
The usb_address0 mutex is used for all devices on any host. This unnecessary use can cause delays.
![]() |
Explore the world of Intel’s open platform projects, contributions, community initiatives, and more at open.intel.com. |