[RESPONDED] Linux sleep/hibernate status?

I’ve got only s2_idle. It uses 0.85w/h

2 Likes

Slept for 10.56 hours
Used 6.72 Wh, an average rate of 0.64 W
At 0.64/Wh drain you battery would be empty in 103.46 hours
For your 89.97 Wh battery this is 0.71%/hr or 16.97%/day

I have a 16 with Ryzen 7040 and dGPU, sadly it seems like S3 sleep is either not obvious to enable or unsupported. cat /sys/power/mem_sleep gives only s2idle, the deep mode does not appear. This is the same when I run either the mainline kernel or OEM. Quoting support:

As of recent updates from both AMD and Intel, we regret to inform you that they have officially discontinued support for S3 sleep mode. This means that the functionality of S3 sleep mode on systems utilizing these processors is no longer guaranteed to work as expected.

I get a 1.5%-1.7% per hour battery drain in s2idle, not pretty IMO but acceptable for me.

What is different from 12th gen to 13th gen? Can’t you just update bios to get the same benefit ??

Different core architecture on the P-Cores, BIOS updates are a mess on Framework so…no, battery life doesn’t magically improve with BIOS updates. Even the Beta BIOS that have been released make no note of improvements to battery life. Whereas Framework did note improvements when launching 13th gen

1 Like

I’ve the same setup and issue. However, while suspended, the laptop tend to drain the battery rapidly (more than 10%/h) while the temperature rise abnormally… Am I the only one getting this issue ? I believed it could be linked to the sleep status but since it cannot be switched to deep sleep, it’s a bit cumbersome…

Probably same issue than on the laptop 13 :

1 Like

For me putting it to deep sleep fixed the issue and I now have around 0.5%/h battery loss.

believed it could be linked to the sleep status but since it cannot be switched to deep sleep

Which distro are you running that you can’t go to deep sleep?

I’m on Pop!_OS 22.04 LTS, and I get the following:

$ cat /sys/power/mem_sleep
s2idle

But from what I understood from @xyx0826 answer, the issue is more related to hardware, isn’t that right ?

Can you share your HW/BIOS/distro stack that brought up deep sleep on your machine? I’m on Ubuntu 24.04 with BIOS 03.02 and never had any luck with it.

In other news I’m having trouble with hibernation as well but I suspect that might be an OS config issue.

I have Framework 13 11th gen, 3.19 BIOS (same issue with 3.17 and probably earlier versions) and using Arch (same issue with Fedora, OpenSuse).
It might be a hardware issue, but it can be fixed by changing the sleep status to deep.

Fedora:
sudo grubby --update-kernel=ALL --args=mem_sleep_default=deep

Arch with systemd-boot:
add mem_sleep_default=deep
to /boot/loader/entries/<current-conf>

Ubuntu:
Look at the first answer

Thanks, sounds like I’m out of luck with my AMD CPU on the 16 then. The deep option doesn’t appear in /sys/power/mem_sleep so setting mem_sleep_default would do nothing.

Lack of S3 sleep seems like a UEFI or hardware problem. I’ve tried enabling S3 through Universal AMD Form Browser but like this post, my OS fails to resume. (Be careful with this tool - bricking risk!)

I also tried adding --args=mem_sleep_default=deep to my boot options but as @xyx0826 mentioned it doesn’t change anything…

However, I noticed that after ~2h being idle (with lid closed) my charger was hot and my laptop burning hot in a cool room ! The battery drain is annoying but the temperature rise is really problematic and can be dangerous for the people around and the hardware.
Since the issue seems to be linked to the hardware, Framework support should probably be requested.

If you’re having high power consumption over s2idle please use this script to identify the issue:

If you’ve used any tools that modified “hidden” bios settings please reset BIOS defaults before running the tool.

I didn’t manage to install iasl and I needed to run the script as root. It seems to detect that my OS is tainted (12288) which seems to relate to :

    1. kernel issued warning
    1. externally-built (“out-of-tree”) module was loaded
    1. unsigned module was loaded

I’m not sure what those flags means. Could it be linked to my Pop_OS! install ? I followed the Ubuntu 22.04 LTS Installation on the Framework Laptop 16 - Framework Guides (with Installing Pop!_OS - System76 Support instead of Ubuntu) with the update of Framework Laptop 16 BIOS and Driver Releases, the completion guide and disabled touchpad during typing.

The script logs (with default values and the --force option):

Location of log file (default s2idle_report-2024-06-26.txt)? 
👀 ACPI extraction tool `iasl` is missing. Attempting to install.
Debugging script for s2idle on AMD systems
💻 Framework Laptop 16 (AMD Ryzen 7040 Series) (16in Laptop) running BIOS 3.3 (03.03) released 03/27/2024 and EC unknown
🐧 Pop!_OS 22.04 LTS
🐧 Kernel 6.9.3-76060903-generic
🔋 Battery BAT1 (NVT FRANDBA) is operating at 98.47% of design
Checking prerequisites for s2idle
✅ Logs are provided via systemd
✅ AMD Ryzen 7 7840HS w/ Radeon 780M Graphics (family 19 model 74)
✅ SMT enabled
✅ LPS0 _DSM enabled
✅ ACPI FADT supports Low-power S0 idle
✅ HSMP driver `amd_hsmp` not detected (blocked: False)
✅ PMC driver `amd_pmc` loaded (Program 0 Firmware 76.82.0)
✅ USB4 driver `thunderbolt` bound to 0000:c6:00.5
✅ USB4 driver `thunderbolt` bound to 0000:c6:00.6
✅ GPU driver `amdgpu` bound to 0000:03:00.0
✅ GPU driver `amdgpu` bound to 0000:c4:00.0
✅ System is configured for s2idle
✅ NVME Sandisk Corp is configured for s2idle in BIOS
✅ GPIO driver `pinctrl_amd` available
🚦 Device firmware checks unavailable without fwupd gobject introspection
ACPI extraction tool `iasl` is missing
❌ Kernel is tainted: 12288
Your system does not meet s2idle prerequisites!
How long should suspend cycles last in seconds (default 10)? 
How long to wait in between suspend cycles in seconds (default 4)? 
How many suspend cycles to run (default 1)? 
Started at 2024-06-26 10:59:39.889433 (cycle finish expected @ 2024-06-26 10:59:53.889450)
Results from last s2idle cycle
○ Suspend count: 1
○ Hardware sleep cycle count: 1
○ GPIOs active: ['84']
○ Wakeup triggered from IRQ 9: ACPI SCI
○ Woke up from IRQ 9: ACPI SCI
○ gpe0B increased from 265 to 339
✅ Userspace suspended for 0:00:13.326155
✅ In a hardware sleep state for 0:00:06.357666 (47.71%)
🔋 Battery BAT1 (NVT FRANDBA) is operating at 98.47% of design
Explanations for your system
🚦 Kernel is tainted
	A tainted kernel may exhibit unpredictable bugs that are difficult for this script to characterize.
	If this is intended behavior run the tool with --force.

For more information on this failure see:
	https://gitlab.freedesktop.org/drm/amd/-/issues/3089

I need to see the whole log not just stdout. Please share it. Gist or pastebin are fine.

Sorry, I didn’t check that the logs from stdout where different than the log file. There you go: s2idle_report-2024-06-26.txt · GitHub

Can you do a longer cycle? Like 5 minutes? I see that FRMW0003 device woke your system relatively prematurely but I want to see if that also happens on a longer cycle.

Here’s the report for 2 cycle of 10 minutes : s2idle_report-2024-06-27.txt · GitHub

Both those cycles look good with no notable problems. Is it still heating up during these cycles? I wonder if your issue before was just the laptop charging while asleep and getting warm from doing so?

I didn’t check specifically during those cycles. But I know that the issue happens independently of the charge level and whether charging or not… Its simply that on battery, it rapidly burns it and on charge, it keeps at max level (60%). But every times, it seems to increase in temperature compared to when its awake.