In 8 hours it uses 20% of the battery. When Windows or Mac are put to sleep, the damn things can sleep for a week! This is the case with Linux on multiple laptops.
Is there some kind of manipulation going by ring -1 that detects Linux is running? Is Linux not respecting some procedure and kissing a step?
If only going to sleep was simple. There’s a bunch of different sleep states. S3 is ram and S4 is hibernate.
Check your supported sleep states. At the command line type cat /sys/power/state
https://www.kernel.org/doc/html/v5.4/admin-guide/pm/sleep-states.html
It also doesn’t help that ACPI is a badly-designed mess of a standard. I remember that in the 2010s one of Apple’s selling points was that their laptops had sleep and hibernation that worked every time. Heck, MacOS X could even decide intelligently when to do which. This mostly worked because they fully controlled the hardware, firmware, and software. Other laptop manufacturers could just take their best stab at implementing ACPI power states and hope their implementation matched Microsoft’s.
Microsoft tried to solve the mess by introducing the S0ix ACPI state (aka “Modern Standby”), which was defined in a way that could actually be implemented without too much guesswork. Unfortunately, this was during the Windows 8 era when Microsoft decided that laptops should be more like smartphones so S0ix is much closer to turning your screen off on a phone than to actual standby.
The system randomly waking up and deciding to do work is an explicitly intended feature because what if you get a Teams message while your laptop is in your bag? Sure, you might say that you’d either have Teams on your phone or wouldn’t immediately care but that kind of thinking won’t get you anywhere within Microsoft. Also, Windows actually has very little restraint about what it does when it wakes up so it might decide to install a heavy update or an application might decide it’s important enough to do work right now. While the laptop is in your bag. Cue you wondering if the laptop turned off because the battery’s empty or because it overheated.
And to make things worse Microsoft specified that in order to be allowed to use Modern Standby, the device must not offer S3 (sleep/suspend-to-ram). Some manufacturers still allow you to enable S3 but it’s a legacy feature that’s even less well supported than before.
This is the one I was going to link.
I have my laptop in s2idle mem_sleep most of the time because this boots quick and allows me to wake the computer by pressing a key on my USB keyboard plugged into a hub plugged into my dock into my laptop.
And it gets from my office and back just fine on that. But if I’m traveling or something I’ll switch it to deep mode before I leave so it actually actually goes to sleep in my bag.
It takes extra time and jank to boot, and I have to wake it up by opening the lid, but if I’m traveling that’s normal since I don’t travel with my dock or USB keyboard anyway.
This is one of those cases where it would be nice if the tech always did what I wanted, but I do actually want different things at different times, and so I do actually benefit from the control of being able to choose.
My hardware doesn’t support “shallow” sleep, for whatever reason.
The reason is, as usual, that Microsoft lobbied hard to make their way the standard way of doing sleep modes. Then, when implementing it, they strong armed all the OEM to make hardware fit their nonstandard, slightly off center, way.
So, now windows kind of work with all hardware, but open source is fucked because to make the hardware actually work requires reverse engineering whatever custom crap windows does.
deleted by creator
Is that true for Mac and Windows too? Why do I need to differentiate the two on Linux but not the others? Why isn’t the default the better one?
It’s something to hassle with on Windows too. Less so on macOS because it’s easier for them to optimize everything when they control the whole software and hardware stack.