Modern Standby resume performance

For users, the most noticeable benefit of using a Modern Standby PC is its ability to instantly resume from sleep. Modern Standby resume performance is typically less than one second, as measured from power button press to powering on the display. Significant engineering in Windows, third-party drivers, and system firmware is required to achieve this high level of performance.

You can measure Modern Standby resume performance by using tests that are built into the Windows Hardware Lab Kit (Windows HLK) or by manually capturing a trace and reviewing the result in the Windows Performance Analyzer (WPA).

Watch this video to learn how to use WPA to measure the time required to wake the platform from Modern Standby.

Using WPA to measure Modern Standby performance

To evaluate connected standby resume performance, take a trace with the provider named Microsoft-Windows-PDC, which is the system-supplied power dependency coordinator. The Trace_start.cmd file that is included with the WPA package includes this and other providers that are required to measure resume performance. The WPA package is available in the Windows Assessment and Deployment Kit (Windows ADK) download and includes scripts and documentation for modern standby analysis.

To collect a trace

  1. Open a Command Prompt window as Administrator.
  2. Run the Install.cmd command to install the package.
  3. Follow the instructions in Capture a WPA trace to collect the trace. For validating resume performance, a 5-10 minute session should be sufficient.
  4. To save the trace file, rename it or save it to a different location because a file with this name will be overwritten the next time a trace is taken.
  5. Repeat steps 3-4 to gather another trace.

After you have completed these steps, open the trace file in WPA by double-clicking it. (If this doesn't work, make sure you are using Wpa.exe to open the trace file.)

Validate that the system entered the lowest power state (HW DRIPS) during the modern standby session. Resume performance should be measured for transitions from HW DRIPS to the screen turning back on because these transitions have the longest latencies.

Check the DRIPS graph under the power graphs to determine whether the system successfully entered DRIPS while in modern standby.

If the system did not enter DRIPS, the exit latency value is not used in the Windows HLK test and the Windows HLK test will fail. In this case, you should rerun the WHCP test.

If this issue occurs consistently, stop the analysis of resume performance, and identify and resolve why the system is not entering DRIPS.

Using WPA to optimize Modern Standby performance

Note

The two most common causes of modern standby exit delay are turning on the display and network devices—in particular, mobile broadband (MBB) radios.

The Windows power dependency coordinator (PDC) transitions through a number of phases for each entry to and resume from modern standby. These PDC phases always take place in series for entry and in reverse order for resume. The duration in time of each phase can vary.

You can use WPA to take a trace to indicate where most of the time is spent during resume from Modern Standby. To analyze where the Modern Standby exit time is being spent, zoom into just the region between the start and end of the exit from Modern Standby. Pull up the PDC Notification Phase graph under Power. This graph lists each connected standby PDC phase.

Highlight all the phases shown in this graph to get the total time spent in the PDC phases.

You can also get the duration of a particular PDC phase. To do so, change the display format of the PDC Notification Phase graph to Both graph and table. Then, expand the phase of interest and look for the duration.

Common causes of long modern standby resume

Some common problems might cause long latencies during resume from modern standby. The most likely causes of such latencies are turning on the display and re-enabling network connections.

The Windows Performance Analyzer (WPA) is used to obtain the graphs that are discussed in this section. For more information, see Using Windows Performance Analyzer to analyze modern standby issues.

Display issues

From the time that the system completes the PDC phases to the end of modern standby exit, a variety of processes can cause delays. The foremost cause of delays is turning on the display. The request to turn on the display is sent at the end of the PDC phases while exiting modern standby.

To determine the time required to turn the display on:

  1. Find the event time stamp for the initial request to turn on the monitor.

    Navigate to the PDC Notification Phase graph > Connected Sessions Check event > Exit Time.

  2. Find the event time stamp for when the kernel received the notification that the monitor finished turning on.

    Navigate to the Generic Events graph > Microsoft-Windows-Kernel-Power provider > Task Name column > DisplaySessionStatus event.

  3. Take the difference of these two event times, and the result is the time that is required to turn on the display.

If this value is greater than expected, contact the system graphics device vendor.

Network connectivity issues

Re-enabling network connectivity is a major cause of long modern standby resume latency. The time required to finish the resiliency phase (so that the next PDC phase can start) depends on how quickly the D0 IRP for the required network device can be completed. (A D0 IRP is an IRP_MJ_POWER IRP that specifies a DEVICE_POWER_STATE enumeration value of PowerDeviceD0.)

If a Wi-Fi connection is available, the system will wait for the Wi-Fi device only, regardless of whether a mobile broadband (MBB) connection is available. Otherwise, the system will wait for the MBB device to complete the D0 IRP.

If no network device is available, the system does not wait for these devices before proceeding to the next phase. As a result, the time spent in the resiliency phase often reflects the time that is needed to complete the D0 IRP for the network device.

To find the time taken to complete the D0 IRP:

  1. Pull up the Device Dstate graph under Power.

  2. Zoom into the section for Connected Standby Exit.

  3. Look for devices that are changing D-states (device power states) during this time. For a system that has Wi-Fi enabled, look for the Wi-Fi device.

  4. Find the column labeled D-Irp Duration (ms). (Look for this exact column name—there are other columns with similar names.) This number indicates how long it took to complete the IRP for the D-state transition.

With mobile broadband, the system takes about twice as long to resume from modern standby.

If mobile broadband is enabled on the system, try removing the SIM card and retrying the modern standby exit test. The Windows HLK test only checks that Wi-Fi is connected.

If the latency of any network device seems long, contact the Wi-Fi or mobile broadband device vendor for the system.