Trying To Explain the Surface Sleep Problems by Paul Thurrott

Trying to Explain the Surface Sleep Problems

Posted on February 25, 2016 by Paul Thurrott in Microsoft Surface with 138 Comments

As I wrote yesterday, my Surface Book sleep problems appear to be fixed by the recent firmware update. But what happened? Why did some Surface Book and Surface Pro 4 devices succumb to power management issues that didn’t seem to impact many other new PCs?

I stumbled badly trying to explain this problem in yesterday’s episode of Windows Weekly, but I think the truth is out there. (You’re welcome, X-Files fans.) And can now be explained more clearly.

Here, I’m relying on three sources that are worth checking out independently, plus one that was a private conversation with a PC maker:

So here’s the synopsis, as I understand it. (Bear with me, this isn’t an area of expertise.)

Modern, Intel-based PCs support a variety of power management sleep states (S1 to S5, where S3 is “Suspend to RAM” and S4 is “Hibernate”). There’s also an S0 state, where the PC is simply powered on normally.

But the newest Intel chipsets, including Skylake, also offer a special set of S0i”x” sleep states, including the Powered On Low Power State, which allows the PC to work much like an ARM-based phone or tablet. What this means is that S0ix-enabled PCs can “drip” data to the device—new email, notifications, software updates—even while it is sleeping. And from a hardware perspective, it means that the S0ix states can in fact shut off parts of Intel “chipset,” as think of it—it’s really a System on a Chip or SoC design—when they are not in use. In other words, it can be very efficient.

Surface Book and Surface Pro 4 are S0ix-enabled. As the Surface MVP referenced above notes, there’s an additional complication when using this technology in Windows, because desktop (Win32) applications are not compatible. So these applications are “forced into a virtual S3 State.”

“Win32 applications can misbehave and refuse to go into the virtual S3 state preventing the device to go into S0iX which causes the power drain,” he notes, referencing what we’ve come to think of as “hot bagging.” “Also, with SkyLake, Intel struggled with getting their SoCs to enter into DRIPs which allows for the lowest power levels.”

What’s unique about Surface Book and Surface Pro 4, however, is that Microsoft decided to live on the leading edge. They only support S0ix sleep states in these devices, plus a hibernation fallback that is enabled after two hours by default. The resulting scheme—which other PC makers do not use, for the most part—is calledModern Standby.

“Surface uses Modern Standby rather than traditional S3 Sleep,” Microsoft explains. “This allows us to manage power consumption right down to the individual hardware components. The net effect is near instant resume times and more efficient power consumption.”

So Surface utilizes phone/tablet-style power management, unlike PCs from HP and most other PC makers, which found this to be unreliable. (There are exceptions, of course, and now that the issue is being fixed, we should see other Skylake-based PCs add this functionality over time.)

As Microsoft explains it, there are two modes to Modern Standby: “Connected Standby, also known as InstantGo, for always-on computing” (this is S0ix) and “Disconnected Standby for longer battery life” (which is S4, or Hibernate). You can see this on your own Surface Book or Pro 4 by running the command line powercfg /a. When you do, you will see the following:

Standby (S0 Low Power) Network Connected
Hibernate
Fast Startup

The output also notes that “Standby (S3) is not available.” (Neither is S1 or S2.)

Now let’s look at another Skylake-based PC, Intel’s new (2016) Spectre x360-15. When I run the powercfg /a command line on that system, I see this:

Standby (S3)
Hibernate
Hybrid Sleep
Fast Startup

So this device, just as “modern” as Surface Book/Pro 4, doesn’t offer S0ix (“S0 Low Power”) because HP tested it and determined it wasn’t reliable. But the PC functions much like Surface Book/Pro 4 should, coming to life quickly and otherwise working as expected.

My theory is that by supporting just S0ix/hibernate, Microsoft unfortunately hobbled Surface Book and Surface Pro 4 out of the gate—for some users, a situation that is still not fully understood—because the devices couldn’t fall back on another power state. So when S0ix fails on these devices, all the system can do is heat up (“hot bag”) because it cannot asleep. And then it enters hibernate 2 hours later, when it’s too late to really help. Now that the problem fixed, things should work normally, and all Surface Book/Pro 4 users will see the benefits Microsoft originally intended: Phone/tablet-like power management behavior.

So when that unnamed Surface support rep said that “power management is a very hard computer science problem to solve especially with new silicon,” he was right. And Microsoft should be lauded for really living on the bleeding edge, in some ways. It’s just that thing kind of exploded in their face. Which is too bad.

Anyway, it appears to be fixed. And while the “why” of this episode is interesting on some level, it just being fixed is probably enough for most customers.

 

Tagged with Surface Book, Surface Pro 4

 

Discussion Info


Last updated October 7, 2019 Views 1,199 Applies to:

This is the truth. I am an electrical / computer engineer, and I know that power management is indeed a "hard computer science problem", especially for Intel chips and Windows. Before Skylake and Windows 10, x86 architecture and Windows were not designed to operate like a smart phone. Upgrading an old system with a new technology and at the same time trying to maintain compatibility, is much harder than designing a completely new system. 

Before Surface pro 4 and Surface book, smart phones, including tablets, are totally different from computers. If you think about Apple. iPhones and iPads uses iOS which is an "embedded system", while Macbooks uses Mac OS X which is a full-fledged computer system. They are two different types of operating systems, with different designing goals. 

Now, Microsoft and Intel are trying to make a big step by completely eliminate the gap between embedded systems and computer systems. They are trying to provide us a single solution for both PCs and smart devices. 

This is not an easy step, and this could be an important step for the whole computing industry. That's why I support Microsoft, despite of the bugs and problems of their initial products. I'm excited to witness this great step happening. 

Of course for HP, it is a wise choice not to try this new tech. Because unlike Microsoft, HP has absolutely no control on the operating system. 

Trying to Explain the Surface Sleep Problems

Posted on February 25, 2016 by Paul Thurrott in Microsoft Surface with 138 Comments

Anyway, it appears to be fixed. And while the “why” of this episode is interesting on some level, it just being fixed is probably enough for most customers.

Tagged with Surface Book, Surface Pro 4

Sadly, its not fixed for everyone, including me.

Purchased an i5 Surfacebook with DGPU. All updates applied. On its first attempt at sleep, it lost 20% battery before it went into hibernation. This is with all default settings, no changes made to power management.

I`ve seen other posts reporting similar issues after the last firmware update. Some are alto reported their power management is WORSE after the last update.

My Surface Pro 4 has been having excellent performance when asleep with it reporting 100% battery charge remaining even after 4 hours in standby. I have disabled the option to remain connected whilst asleep on battery power because I find it pointless and I can see that being a bigger drain if I'm moving the device around in and out of Wi-Fi coverage and it has to keep looking for signal.

An example sleep session on my device:

One thing to note on Thurrott's article, though, is this:

“Win32 applications can misbehave and refuse to go into the virtual S3 state preventing the device to go into S0iX which causes the power drain,”

I believe that can be an issue and maybe you can do a sleep study on your device to check what is actually causing the drain. To do that, open an admin command prompt and run the following:

powercfg /sleepstudy /output C:\Users\<your user>\Desktop\sleepstudy.html

After that you should find sleepstudy.html on your desktop and you can read that to see what has been draining your device's power.

PS: I have noticed that what stays active most of the time whilst I'm not using my device is actually VMWare Player's virtual network adapters. It creates two by default that it uses to bridge ethernet to virtual machines and those things are a pain in the back because the driver does not go to sleep even though there aren't VM's running and the computer is asleep.

I'm not a Microsoft employee.