ID 727824
Updated 2/4/2022
Version Latest




Release Date: Dec 27, 2020


download from github


PM-Graph v5.8 - Dec 27, 2020

Updates to s2idle handling and various fixes

Important fixes:

  • In s2idle, use timekeeping_freeze trace mark instead of machine_suspend to denote entry into s2idle mode.
  • In s2idle, use machine_suspend trace mark to create a new virtual device called "s2idle_enter_<n>x". It denotes an s2idle_enter call loop of <n> iterations where s2idle was never actually achieved. It isn't counted as "freeze time" in the header.
  • In s2idle, only show multiple freeze times if s2idle went in and out of resume_noirq. Otherwise multiple freezes are shown with "waking" time subtracted (waking time is time spent outside s2idle dealing with wakeups).
  • In s2idle summaries, include "FREEZEWAKE" as an issue when at least 1ms is spent waking from s2idle. A clean run should only wake for the rtc timer.
  • Add support for device callbacks with matching names in the same phase. In rare cases some devices register multiple callbacks from separate drivers using the same name. Without this fix only one is shown.
  • Add kparamsfmt string back to fix bootgraph

General updates:

  • When suspend_machine is missing, error says "failed in suspend_machine"
  • Extract target count/time and add to summary title if -multi used
  • Include any instances of "timeout" in dmesg as issues to be logged.
  • Fix ftrace parse to handle any number of flags (instead of just 4).
  • Remove sync/async_device string from device detail, remains in hover.
  • When using callgraph (-f) add driver name to callgraph titles.


  • Force usage of python3 instead of using system default
  • Fix bugzilla 204773 (
  • Fix issue of platform info not being reset in -multi (logs fill up)
  • Change -ftop call to "pm_suspend", this is one level below state_store
  • Add -wificheck command to read out the current wifi device details
  • Change -wifi behavior to poll /proc/net/wireless for wifi connect
  • Add wifi reconnect time to timeline, include time in summary column
  • Add "fail on wifi_resume" to timeline and summary when wifi fails
  • Add a set of commands to collect data before/after suspend in the log
  • Add "-cmdinfo" command which prints out all the data collected
  • Check for cmd info tools at start, print found/missing in green/red
  • Fix kernel suspend time calculation: tool used to look for start of pm_suspend_console, but the order has changed. latest kernel starts with ksys_sync, use this instead
  • Include time spent in mem/disk in the header (same as freeze/standby)
  • Ignore turbostat 32-bit capability warnings
  • Print to result.txt when -skiphtml is used, just say result: pass
  • Don't exit on SIGTSTP, it's a ctrl-Z and the tool may come back
  • Multi argument supports duration as well as count: hours, minutes, seconds
  • Update the -multi status output to be more informative
  • Maxfail sets maximum consecutive fails before a -multi run is aborted
  • In summary, ignore dmesg/ftrace/html files that are 0 size
  • If wakeups occur in s2idle: "freeze time: N (-x ms waking y times) ms"
  • Change FREEZELOOP and FREEZEWAKE to S2LOOP and S2WAKE for brevity
  • Returns all sysfs vals to their initial state after testing
  • Use the dmesg log for debugging until the test is completed, instrument the executeSuspend process to have a full trace, if test completes, formal dmesg log overwrites the debug log
  • Fix CPU_ON and CPU_OFF devices in the timeline, should include [n]


  • Force usage of python3 instead of using system default

Project: pm-graph