There was a HUGE firmware and driver update on April 19, 2016 that included a dock integration update, which appears to have fixed at least a few of my multi-monitor issues. I’m not sure if they’re fully resolved yet, but after an initial display dance at work (see last post) my display dock at work seems to remember the last configuration I was using whenever I connect–a first! I have a slightly different setup at home with a different dock, but we’re painting this weekend so I can’t get to my desk to see if all of my multi-monitor problems are resolved.
My last post was all about how the dock’s display issues are awful, so why does my Surface Book still suck? Well, since the update connected sleep has returned to an absolutely unreliable state, and I’ve had to disable it in the registry. Again.
The first two few days after the update when started my SB at work after an overnight hibernate, it would boot from scratch as though it had crashed during the night. I’d had the machine configured to sleep after 20 mins and hibernate after 2hrs on battery since a previous firmware update had made sleep reliable enough to use. I thought maybe MS had broken hibernate this time, so I disabled it. No, it’s connected sleep. Again. ARGH!!
To rule out hibernate, I configured it to just sleep (no hibernate) while on battery after either 20 minutes or when I close the lid. I have wireless disabled during sleep in the power settings app. Since the update if it sleeps too long it just shuts off even if hours and hours of battery remain. I’ll open the lid expecting it to wake up and the power will be completely off. When I press power it boots from scratch and I’ve lost all my work. Awesome!
After each of these shutoff events when I go into the event viewer I see an Event ID 41 / Kernel Power entry during the boot sequence noting that the machine didn’t shut down cleanly. Before that there is almost always a series of 506 and 507 events from hours earlier from Kernel Power noting it’s entering and exiting connecting standby repeatedly due to “User Display Burst”. As far as I can tell through correlation, User Display Burst means an important notification like a reminder or Cortana message. So it’s waking up for those on its own and then trying to go back to sleep, sometimes performing that cycle a few times in a row in quick succession. After the 506/507 sequences, there will be no other events listed until the regular startup events.
So there I go into the registry to disable connected sleep again and replace it with hibernation. Microsoft, why can’t you make a computer that can deal with power management? You get to write the BIOS, all the firmware, and the operating system!
I used to think the Linux community was just whining about how tough sleep (S3 in partic) are to deal with in the PC BIOS. Now that I’ve watched Microsoft flail and struggle with this for literally years on the Surface line, I get it. MS is having to sleep in the bed it has spent decades helping the PC industry make, so they get to learn all of the hard lessons HP, Dell, Lenovo, etc. have had to master on their own through huge engineering efforts to get their machines to reliably sleep with the nasty clutter of standards and BIOS support and OS hooks available. You were supposed to make this look easy, Microsoft!!
At least this problem is fixable, but it’s pretty messed up that so many people who have these machines are dealing with this and maybe have no idea how to work around it themselves.