pm-graph Release Notes

ID 737800
Updated 2/4/2022
Version Latest




Release Date: December 27, 2020

Get the Software

Download from GitHub*

Download from Intel

What's New in v5.8

This release has updates to s2idle handling and various fixes.

Important Fixes

  • To denote entry into s2idle mode, in s2idle, use the timekeeping_freeze trace mark instead of machine_suspend.
  • To create a new virtual device called s2idle_enter_<n>x, in s2idle, use the machine_suspend trace mark. 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.
  • S2idle only shows multiple freeze times if s2idle goes 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 1 ms 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 appears.
  • Add kparamsfmt string back to fix bootgraph.

General Updates

  • When suspend_machine is missing, the error message says failed in suspend_machine.
  • Extract target count/time and add to summary title if -multi is 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 four).
  • Remove the sync/async_device string from Device Detail so that it remains in Hover.
  • When using callgraph (-f), it adds the driver name to callgraph titles.

Sleepgraph Upates

  • Force use of Python* 3 instead of the system default.
  • Fix for Bugzilla 204773.
  • Fix the issue of platform information not being reset in -multi (logs fill up).
  • Change the -ftop call to pm_suspend. This is one level below state_store.
  • Add a -wificheck command to read out the current Wi-Fi device details.
  • Change -wifi behavior to poll /proc/net/wireless for Wi-Fi connect.
  • Add Wi-Fi reconnect time to the timeline and include time in the summary column.
  • Add fail on wifi_resume to the timeline and summary when Wi-Fi fails.
  • Add a set of commands to collect data before and after a suspend in the log.
  • Add a -cmdinfo command that prints all the collected data.
  • Check for cmd info tools at the start and print found/missing in green/red.
  • Fix the kernel suspend time calculation. The tool is used to look for the start of pm_suspend_console, but the order changed. The latest kernel starts with ksys_sync: use this instead.
  • Include time spent in mem/disk in the header (the 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.
  • The multi argument supports duration as well as the count: hours, minutes, and 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.
  • Return all sysfs vals to their initial state after testing.
  • Use the dmesg log for debugging until the test is completed and instrument the executeSuspend process to have a full trace. If the test completes, the formal dmesg log overwrites the debug log.
  • Fix CPU_ON and CPU_OFF devices in the timeline, should include [n].

Bootgraph Updates

  • Force use of Python 3 instead of using the system default.