Why don’t laptops have proper low power states
Actually, they do, it’s called the “S0” low power state, and it’s part of the ACPI standard. Microsoft calls this “Modern Standby” in Windows (and “suspend to idle” in Linux) , and it’s pitched to do exactly what you’ve described.
The only problem is, the implementation sucks. Most users actually hate the S0 state because it consumes so much power - on some laptops, even the fans may continue to run on S0, and your laptop may overheat if you’ve closed the lid and chucked it in a bag.
Also, because Microsoft and Intel have been pushing this so much, the “standby” mode now defaults to S0 instead of S3 (full suspend-to-RAM) like it used to be, back in the day. So many users actually actively seen to disable S0 and go back to S3, via registry hacks etc.
So why is S0 so bad? Part of this is due to the limitations, long history and the variable nature of the x86 platform. All the power-saving stuff was implemented as an after-thought - both at the hardware and software levels, whereas ARM, at least the modern ARM ecosystem, was developed with mobile usage and power saving from ground up. An x86 PC is also made up of components from disjointed manufacturers, and we need all those components to implement the same standards so that it all works well as expected. So for instance, if a particular component isn’t capable of entering a low-power or active standby state, then it won’t - and you can’t do much about that.
The second half of the problem comes with the software. All applications must be modern standby / S0 aware, if not, one of two things will happen: that app will keep the system awake, or the app will get suspended by the Desktop Activity Manager (DAM). Either way, the app must be capable of running in the DRIPS phase (deepest idle runtime platform state), which rules out most Win32 apps (basically almost every app that’s not on the Microsoft Store).
Finally, the reality is that most PC users don’t care about modern standby regardless - and why should they, when they’ve all got smartphones, which handles notifications well? Also, hardly anyone does large file downloads these days, and the people who do still download, wouldn’t care about doing it while on battery (and if they do, they can take manual actions to lower the power consumption, such as switching to a power saving plan and turning off the display etc).
MrFlamey@lemmy.world 1 year ago
Thanks for the excellent response.
I wonder if Valve will try to implement it in Steam OS for the Steam Deck’s successor, as a lot of people complained about the lack of downloading while asleep after the Deck was launched. It would still need cooperation in hardware I assume, but they were able to get resuming games working, so it doesn’t seem like an insurmountable problem if there is enough desire from both gamers and Valve.
Vash63@lemmy.world 1 year ago
I don’t think this would need to wait for a successor. The problems are software, not hardware. They would need to have games and SteamUI get suspended but leave other processes running, might be tricky and prone to bugs.
NeoNachtwaechter@lemmy.world 1 year ago
Of course hardware is part of the problem too.
PC architecture does not allow, for example, that the network interface may feed any data directly to the harddisk. Every bit and byte must be input to the CPU and then output from there.
Otherwise we could allow the CPU some real good sleep while other devices remain a little active.
bigdog_00@lemmy.world 1 year ago
Isn’t this the idea of having a chipset (Northbridge/Southbridge) on the board, to handle some of these IO tasks?
Also, I recently saw the Cathode Ray Dude video on Dell’s Brain Slug, where down basically hijacked the system with a low-power ARM SBC. I almost wonder if something like this would be possible, it would obviously require a revision but it would theoretically allow for suspended downloads, invite notifications, etc. It would also be fairly expensive and complex though