Win10 Problematic Modern Standby - Battery Power Drain

October 27, 2018
Or DELL XPS 15 9570 problem

My Dell XPS 15 9570 was bought in Jun 2018 which comes with Modern Standy.

Modern Standy used to be called Connected Standby for Win8. It is supposed to offer a fast sleep/wake (known as S0 low power idle) to have Win10 behave more like mobile devices (e.g. to be connected to network to perfrom update during sleep).

I believe there are 2 types of Modern Standy (S0 Low Power Idle): Network Connected or Network Disconnected (it probably means only Network Connected can perform update during sleep). You can check by running powercfg /a.

The following sleep states are available on this system:
    Standby (S0 Low Power Idle) Network Disconnected
    Hibernate
    Fast Startup

I am glad that Dell XPS 15 9570 support Network Disconnected, which I assume more power savings during sleep.

NOTE: Not all machine support modern standy, and modern standy can be quite unreliable (explain later).

You cannot switch between S3 and Modern Standby by changing a setting in the BIOS. Switching the power model is not supported in Windows without a complete OS re-install. - Source

The Dell BIOS 1.3 used to support S3 Standy in BIOS, but it has been removed in recent updates. I can disable Modern Standy in Win10 by changing the registry (start regedit.exe, edit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power and set CsEnabled to 0, restart machine). This seems to revert Win10 to S3 Standy without BIOS changes, but it seems to trigger other issues (explain later).

Modern Standy Sleep Problem

The first thing I realize is moving the mouse or unplug power seems to wake the machine from sleep, and these are supposed to be the expected behaviour.

Imagine I am preparing to pack my notebook into my bag, thus I close the lid and the notebook goes into sleep. Then I pack my mouse and unplug the power cable, thus wake up the notebook again. If you close the lid, you won’t notice the notebook wake up unless you are connected to a secondary monitor or playing music. The monitor (or secondary monitor) will shut off after 15 seconds or so, and the notebook will go to sleep again. If you are playing music, the music will continue playing even though the lid is closed and the monitor is shut off (I assume this is the expected behaviour for mobile devices, but not what I expect for a notebook). So everytime before I put the notebook to sleep, I need to switch off my music.

NOTE: This behaviour always left me with an uneasy feeling that the notebook didn’t go to sleep properly when I close the lid, thus risking overheating my notebook when I put it in a bag. Who knows what else will interrupt the sleep after the accidental wake by mouse movement and change of power source.

Modern Sleep (S0) did consume more power than S3 Sleep. I didn’t do a good measurement of this, but S3 consume about 3-5% of battery for 8h of sleep (fairly consistent and predictable), while Modern Sleep consume at least 15% of battery and sometimes more than 50% when something disrupt the sleep.

Change to S3 Sleep

After a few days with Modern Sleep, I switch Win10 to S3 Sleep (start regedit.exe, edit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power and set CsEnabled to 0, restart machine) and it works pretty well.

NOTE: I assume this will enable S3 sleep, as the Win10 Event Viewer log indicated so.

There are some occasional problem with the Intel UHD Graphics 630 driver, where the monitor would blink/flicker once every few minutes after the notebook wake up from S3 Sleep. This problem is bearable as it doesn’t happen frequently. I tested with Dell driver (it is a custom driver) and the latest driver from Intel: the Intel driver is slightly more stable, but the problem still persist.

NOTE: Once I switch back to Modern Standy, this problem no longer persist. I always suspected driver for DELL XPS 9570 are not tested properly for S3 sleep.

Things work pretty well for 3 months, until last 2 weeks (since Oct 2018) my notebook experience ocassional freeze once every 3-7 days. Freeze as in the monitor either goes blank or freeze, mouse cursor missing and speaker music stop. There is nothing can be done except to force restart the machine. I check Event Viewer log and there isn’t any clue (this isn’t a Blue Screen Of Death). I am not sure if Win10 updates or Dell BIOS/driver updates cause this problem.

I suspect the problem is caused by driver instability due to using S3 Sleep (which is not officially supported on this machine, since DELL remove S3 sleep from BIOS and Microsoft Modern Standy documentation say so).

Switch back to Modern Standy

I have switch back to Modern Sleep for 5 days and haven’t encouter the notebook freeze again, finger crossed.

Modern Standy Power Consumption

I monitor the battery power consumption during sleep using powercfg /sleepstudy.

Duration Battery Power Power/h % Low Power State Time
0:51:45 1% 728 mWh 846 mW SW: 99% HW: 97%
7:24:16 15% 12,763 mWh 1,724 mW SW: 99% HW: 72%
2:30:16 3% 2,277 mWh 910 mW SW: 98% HW: 96%
3:04:40 12% 10,349 mWh 3,364 mW SW: 99% HW: 55%

NOTE: Battery, Power, Power/h refer to consumption during sleep. For the 1st line, for the duration of 51 minutes and 45 seconds, 1% of battery (728 mWh) is consumed with the rate of 846 mW per hour. % Low Power State Time means the percentage of time Software (SW) and Hardware (HW) is in low power state (the higher % is better, means things are running with low power during sleep).

As you can observe, power consumption during sleep is pretty unpredictable, ranging from 846 mW per hour to 3,364 mW per hour. % of Time of HW in low power state also range from 97% - 55% (I assume the culprit are device driver/BIOS). From the detail section I notice something like SoC Subsystems > NoHwDrips.C3 > NoHwDrips.C3.LTR_SPC being active most of the time. DRIPS refers to the Deepest Runtime Idle Platform State, where I assume C3 is a sleep state and the CPU fail to enter sleep state. During the 4th time (duration 3:04:40), the notebook is slightly warm when I took it out from the bag and I heard the fan is spinning.

Based on this, I conclude power consumption for Modern Standy is pretty unpredictable and it is pretty dangerous to put your notebook in a bag for long period with Modern Standy.

BTW, this is not just a DELLXPS 9570 problem, seems like Lenovo Thinkpad X1 Carbon 6th Gen and Microsoft Surface Book have the same problem as well.

There is an discussion about the c state bug, cross posted here as well.

Here is a video explaining the problem, where fan still spin and the notebook never fully enter sleep mode.

It might not be Microsoft Modern Standy’s fault, but it seems pretty hard to get the device driver to play nicely with Modern Standy. Who is going to fix this? Microsoft, Dell or Intel? Seems to be the case of more finger pointing and no one really cares about the problem.

Hybrid Sleep

If you enable Hibernate mode for Win10, you can configure a hybrid mode where the notebook will proceed to Hibernate after N hours of Sleep.

Right Click Windows Icon -> Power Options -> Additional power settings -> Change plan settings -> Change advanced power settings -> Sleep -> Hibernate after.

This sounds like a good idea to counter the problem of Modern Standy not able to go into low power sleep (a.k.a overheating in bag). The notebook need to wake from sleep before entering Hibernate state. There is one obscure occurance the notebook wake from sleep but fail to enter hibernation, thus draining all the battery during the night.

NOTE: I suspect this is a strategy to hide/camouflage the failure of Modern Sleep.

Hibernate

At the current stage, Modern Standy is only reliable when the power is plugged in (e.g. Lunch break). If you are switching it off overnight or putting it in a bag for longer than 1h, the most reliable solution at the moment seems to be Hibernate.

Playing with powercfg

If you suspect some program/process is preventing sleep, or waking up device from sleep, you can try powercfg /requests.

DISPLAY:
[PROCESS] \Device\HarddiskVolume3\Program Files (x86)\Google\Chrome\Application\chrome.exe
Playing video
[PROCESS] \Device\HarddiskVolume3\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdgeCP.exe
Media element power request for full screen

SYSTEM:
[DRIVER] Realtek Audio (INTELAUDIO\FUNC_01&VEN_10EC&DEV_0298&SUBSYS_1028087C&REV_1001\4&2223f159&0&0001)
An audio stream is currently in use.
[PROCESS] \Device\HarddiskVolume3\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdgeCP.exe
Media element power request for full screen

AWAYMODE:
None.

EXECUTION:
None.

PERFBOOST:
None.

ACTIVELOCKSCREEN:
None.

If you suspect Chrome is the culprint, you can try powercfg /requestsoverride PROCESS chrome.exe display execution system.

If you suspect Realtek Audio, you can try powercfg /requestsoverride DRIVER "Realtek Audio" system.

NOTE: So far this didn’t help to solve the Modern Standy power draining problem.

Conclusion

Modern Standy (S0) will never be more power efficient than S3 Sleep, but sadly I think S3 Sleep is going away in future device (or not fully supported/tested by device driver).

The power draining problem of Modern Standy is pretty obvious, but no party has acknowlege or address the problem. I am not sure if the power draining problem of Modern Standy will persist forever or magically be fixed one year down the road, since I am not sure who is responsible for the fix (Microsoft, Dell or Intel).

If you try to switch Modern Standy to S3 Sleep by registry settings, you run the risk of unpredictable driver instability, or it might work if you are lucky.

Modern Standy is fast (1s) compared to S3 (about 3s). Since it is fast, you can put your notebook into sleep mode more often when idle, as the speed feels like switching on/off the monitor.

You best bet for long duration sleep is Hibernate (if you can remember), or just opt for Hybrid Sleep and pray nothing goes wrong during the transition from Sleep to Hibernate.

This work is licensed under a
Creative Commons Attribution-NonCommercial 4.0 International License.