s2idle sleep with only USB-C expansion cards: around 0.8 W
deep sleep with only USB-C expansion cards: around 0.4 W
Maybe I’m interpreting the data differently…but that’s a 100% increase going from deep to s2idle.
s2idle sleep with only USB-C expansion cards: around 0.8 W
deep sleep with only USB-C expansion cards: around 0.4 W
Maybe I’m interpreting the data differently…but that’s a 100% increase going from deep to s2idle.
at the follow-up, the number is much better. The difference, at least in that configuration, is almost completely resolved by nvme.noacpi=1
Ah…Got it. Thank you.
I’m testing that out now, in Linux. (On Windows, I got 0.32-0.33w like you did. So I guess that’s as good as it’s going to get in Linux)
Does anyone other than me have an 11th gen system that is on bios 3.20 and works fine with deep sleep and suspend? If you’re not on 3.20 and rely on deep sleep, please don’t dive in to test as you run the risk of losing that functionality. I am trying to understand why my machines work but others don’t. Both of them have the RTC replacement module installed.
I have only tested it on linux, but I will boot up windows (I think I have win 10, not 11 on those machines/the expansion cards for them) and add a post with the outcome.
Possibly, but we definitely have people running into the issue on linux as well.
I’m on an 11th gen FW13 and the 3.19 BIOS, just tried s2idle with four USB-C cards and the nvme.noacpi=1
option, and I calculate around 0.7 W/h consumed during suspend over the last three hours or so. I’ll try a more scientifical calculation overnight, but that’s about double what you reported. Have any tips?
11th gen, 3.20, Ubuntu 24.04.1 LTS, s2idle, 4 x USB-C…suspended for 8 hours and 15 minutes, depleted 8.1Wh. So burning at just under 1W.
I did not set the nvme.noacpi=1 option…Don’t see that from the Framework guides. There’s this where @Matt_Hartley mentioned the nvme.noacpi=1 hasn’t been required for quite sometime now: Ubuntu 24.04 on the Framework Laptop 13 - #36 by Matt_Hartley
Update with additional details:
Memory: 2 x 32GB (HX432S20IBK2/64)
SSD: Adata SX8200 1TB
Due to differences in configuration (memory brand and amount, brand of SSD) I suspect there will be differences in base line power use. I image it will depend on the type of SSD if the nvme.noacpi=1
option makes a difference. I haven’t tested for a while. I might try and see what results I presently get with 3.20 BIOS and fedora 40.
I don’t have those. I only have the original RTC battery. Maybe it is worth checking on the voltage and put a fresh one in or request that module from framework.
Good point, I’m updating the post above your with the additional details.
I’m now going to do a sleep test in Windows 11, again. See if there’s any changes now (vs when it was on BIOS 3.19).
By just taking the battery charge readings before and after s2idle sleep, I recently measured:
0.4 W with just USB-C and 0.93W with an HDMI and a USBA expansion card. This is for an 11th gen i7 with 16Gb memory. The laptop is running fedora 40 and I have TLP activated (and PowerProfile disabled). So it looks like nothing much has changed in terms of the software support and the expansion cards still take a very significant toll. It is a power use where on a 55Wh battery the laptop can survive for about 2 days in suspended state at a minimum. If you’re used to having the laptop plugged in frequently, that is quite workable.
What are you thinking about the nvme.noacpi=1 argument now? I saw a while back that it was taken out of Framework’s Fedora installation guide, along with the recommendation to use TLP, and somewhere Kieran (I think) said it hasn’t been necessary for a long time.
However, when nvme.noacpi=1 was first recommended in 2022, nrp said that it shouldn’t be necessary if we had the latest SN750 firmware, yet I was still measuring a significant difference despite having that latest firmware.
What are you thinking about the nvme.noacpi=1 argument now?
Nothing. I put it there originally when it had an enormous effect and haven’t had a reason to remove it. As far as I know, the SN730 hasn’t received firmware updates from what I received it with.
I’ve been measuring reduction in battery level every time I put the laptop to sleep the past couple days (calculating Wh from charge level * voltage level, not accounting for the voltage curve, but, close enough, I figure). There’s something about my numbers that doesn’t add up. It doesn’t seem like rebooting the laptop with different kernel parameters is sufficient to reliably commit the changes implied by the different kernel parameters. Maybe I need to reboot twice, or shut the laptop down fully instead of rebooting.
So far, s2idle w/o nvme.noacpi seems to use around 1.5 watts and deep sleep with or without nvme.noacpi uses either 0.9 watts or 0.5 watts, but I haven’t got reproducible numbers yet. I got that 0.5 watt number just now, but the laptop woke up too fast, without making me type in my password, for it to have been deep sleep. /sys/power/mem_sleep
says it’s deep
though.
s2idle w/o nvme.noacpi …deep sleep with or without nvme.noacpi…
I don’t think the nvme.noacpi argument was ever expected or measured to have any effect on deep sleep. The key test should be with and without the argument in s2idle.
People were using deep because s2idle was draining the battery, but the wake up time from deep was upwards of 10 seconds. The nvme.noacpi argument made s2idle on par with deep, so we could have instant wake up without the extra battery drain.
nvme.noacpi blocked using the ACPI power state handler call for the internal nvme drive which could power gate the internal m.2 ssd.
Our mainboard can fully power gate the m.2 ssd using a load switch in sleep, or other low power states, to offer some additional power savings.
I remember this worked around some compatibility issues with some drives, or higher power consumption.
Me too: 11th gen i5, BIOS 3.20, RTC replacement module. 2x8GB RAM sticks, one Samsung and one Crucial. Intel AX210 wireless module. I’m running Fedora 40 with kernel 6.11.3 and FDE with LUKS (BTRFS root, swapfile, separate boot & EFI partitions) on a WD Black SN750 (fw 111130WD). I’ll probably upgrade to Fedora 41 later today.
$ cat /proc/cmdlinе # Trimmed down to relevant params
mem_sleep_default=deep i915.enable_psr=1 nvme.noacpi=1 snd_intel_dspcfg.dsp_driver=3 acpi_osi=\"!Windows 2020\"
$ cat /sys/power/mem_sleep
s2idle [deep]
Suspension to S3/deep seems to work as expected — as in, the power button pulses and dmesg reports PM: Waking up from system sleep state S3
on wakeup — but I haven’t conducted accurate power consumption tests recently. I think I set things up on Fedora 37 and then just followed release upgrades.
I’m running 2x USB-C, 1x USB-A, 1x MicroSD expansion cards. I also have a (first-gen but reworked and updated) HDMI card available for testing.
EDIT: Did the release upgrade and took the chance to measure power consumption while suspended: I got 35mAh (~0.54W/h?).
Our mainboard can fully power gate the m.2 ssd using a load switch in sleep, or other low power states, to offer some additional power savings.
Thanks for replying. I’m afraid I don’t have enough familiarity with power management to interpret your comment though.
Are you saying that the Framework motherboard is capable of putting m.2 SSDs into a lower power state without using ACPI, so the nvme.noacpi=1
option caused the kernel to use that alternative mechanism, better than certain ineffective ACPI implementations? Then I guess it wouldn’t matter in deep
sleep because the drive would be shut down anyways…
The key test should be with and without the argument in s2idle.
Sure enough, I didn’t notice any difference with or without noacpi in deep sleep. It seems to fairly reliably use around 0.5 to 0.6 W.
The best s2idle + nvme.noacpi=1
numbers I saw were in the 0.6 to 0.7 W range, so almost as good as s3. The problem was, I routinely got 1.5 to 2.5 W used with s2idle for no obvious reason. It’s completely unreliable, at least on my machine.