Laptop fails to enter sleep after upgrading to kernel 6.7.6

Hello, after upgrading to linux kernel 6.7.6 on my laptop, it gets stuck when trying to sleep (s2idle), consuming battery and heating up.

Anyone knows what I can do to figure out what’s causing this issue? My laptop model is Lenovo Ideapad 5 pro 14ARH7.

Have you isolated the issue to kernel 6.7.6?

For example:

  1. Rollback to zypper pre dup snapshot
  2. Make sure issue is gone, otherwise it could be something else, either a config issue or related to an earlier dup
  3. Upgrade just the kernel zypper in --force kernel-default
  4. See if issue is reproducible. If not, it’s something else

Yes, booting into kernel 6.7.5 fixes the issue. Luckily zypper keeps a few previous kernel versions so I can easily verify this.

The issue happens every single time I close the laptop’s lid or press the power button. The screen becomes black, fans keep spinning, the laptop produces heat. LED indicates the laptop is still fully awake. The laptop doesn’t react to anything. Pressing any key does nothing. I need to hold the power button for 5 seconds to forcefully shut the laptop down to get out of this situation.

Reverting to 6.7.5 makes everything work normally.

1 Like

Ah okay, it looks like 6.7.6 is quite the lemon. I’m also having some issues with kexec not working in it:
https://bugzilla.opensuse.org/show_bug.cgi?id=1220541

Same here. Today the power button was blinking after a period of inactivity, I said fine, Imma have lunch anyway, and just closed the lid.

Took it back one hour later and it was HOT. Battery was 20% depleted, power button still blinking, but pressing it did nothing, had to hard reboot.

Also running 6.7.6

@andrea.ippo @Yorimirus Please use magic sysrq to attempt a safe reboot (killing all apps and syncing filesystem) instead of resetting using the power button as it can cause filesystem damage if done many times or if you’re just plain unlucky.

Docs:

1 Like

Ryzen CPU? Chances are that some sleep states are not happy with what the updated kernel does.
Can you open a virtual terminal ( CTRL+ALT+F1 for instance ) log in and issue:

systemctl suspend

and see if the system spits any error. If it gets stuck, reboot then issue:

journalctl -b -1 | tail

and see if the journal recorded errors just before being stuck.
To see former journal records you may need the persistent journal (not a default AFAIK) and you may need to login as superuser (AKA root ) if your normal user is not a member of the systemd-journal group.

1 Like

Here’s mine:

 andrea  ~  sudo journalctl  -b -2 | tail -n 50
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.3662] device (wlp1s0): supplicant interface state: completed -> disconnected
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.3664] device (wlp1s0): state change: deactivating -> disconnected (reason 'sleeping', sys-iface-state: 'managed')
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Withdrawing address record for fe80::a17f:289e:80f1:719e on wlp1s0.
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Leaving mDNS multicast group on interface wlp1s0.IPv6 with address fe80::a17f:289e:80f1:719e.
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.3983] dhcp4 (wlp1s0): canceled DHCP transaction
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Interface wlp1s0.IPv6 no longer relevant for mDNS.
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.3983] dhcp4 (wlp1s0): activation: beginning transaction (timeout in 45 seconds)
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.3983] dhcp4 (wlp1s0): state changed no lease
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Interface wlp1s0.IPv4 no longer relevant for mDNS.
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Leaving mDNS multicast group on interface wlp1s0.IPv4 with address 10.230.230.107.
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Withdrawing address record for 10.230.230.107 on wlp1s0.
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.5044] device (wlp1s0): set-hw-addr: set MAC address to 06:92:27:AB:73:96 (scanning)
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Joining mDNS multicast group on interface wlp1s0.IPv4 with address 10.230.230.107.
Mar 01 12:32:41 andromeda avahi-daemon[1161]: New relevant interface wlp1s0.IPv4 for mDNS.
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Registering new address record for 10.230.230.107 on wlp1s0.IPv4.
Mar 01 12:32:41 andromeda nscd[1182]: 1182 monitored file `/etc/resolv.conf` was moved into place, adding watch
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Withdrawing address record for 10.230.230.107 on wlp1s0.
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Leaving mDNS multicast group on interface wlp1s0.IPv4 with address 10.230.230.107.
Mar 01 12:32:41 andromeda avahi-daemon[1161]: Interface wlp1s0.IPv4 no longer relevant for mDNS.
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.8096] device (wlp1s0): supplicant interface state: disconnected -> interface_disabled
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.8096] device (wlp1s0): supplicant interface state: interface_disabled -> disconnected
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.8099] device (wlp1s0): state change: disconnected -> unmanaged (reason 'sleeping', sys-iface-state: 'managed')
Mar 01 12:32:41 andromeda dns-dnsmasq.sh[9610]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda NetworkManager[1350]: <info>  [1709292761.9062] device (wlp1s0): set-hw-addr: reset MAC address to 14:AC:60:46:89:71 (unmanage)
Mar 01 12:32:41 andromeda systemd[1]: Reached target Sleep.
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: select timed out
Mar 01 12:32:41 andromeda plasmashell[4351]: error: v4l2-input: /dev/video0: failed to log status
Mar 01 12:32:41 andromeda dns-dnsmasq.sh[9627]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
Mar 01 12:32:42 andromeda systemd[1]: Starting System Suspend...
Mar 01 12:32:42 andromeda systemd-sleep[9638]: /usr/lib/systemd/system-sleep/batterylog: line 4: /opt/batterylog/batterylog.py: No such file or directory
Mar 01 12:32:42 andromeda (sd-executor)[9634]: /usr/lib/systemd/system-sleep/batterylog failed with exit status 127.
Mar 01 12:32:42 andromeda systemd-sleep[9636]: INFO: Skip running /usr/lib/systemd/system-sleep/grub2.sleep for suspend
Mar 01 12:32:42 andromeda systemd-sleep[9620]: Entering sleep state 'suspend'...
Mar 01 12:32:42 andromeda kernel: PM: suspend entry (s2idle)

I’m not here to provide a possible solution, but just want to provide feedback with regards to my laptop - running TW and up-to-date. I do have a Lenovo laptop, but it only runs Win10.

Anyway, I put this Dell laptop to Sleep mode after today’s dup for a couple of hours with no problem (just now woke it up from Sleep mode) … here’s my specs for comparison

Operating System: openSUSE Tumbleweed 20240229
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.12
Kernel Version: 6.7.6-1-default (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i5-8365U CPU @ 1.60GHz
Memory: 15.4 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 620
Manufacturer: Dell Inc.
Product Name: Latitude 5500

Can confirm this behavior on desktop machines as well. My intel-based Dell Opteron always goes to sleep after 30 minutes of inactivity. It has not slept since the kernel update. Only the screen turns off.

Apparently everything OK up to that point. Unfortunately a few suspend steps are only recorded and visible in the journal after wake-up and if your system gets stuck you’ll never see them. For instance on this laptop I see:

mar 01 18:24:43 LT-B kernel: PM: suspend entry (deep)
mar 01 18:24:43 LT-B kernel: Filesystems sync: 0.016 seconds
mar 01 18:24:43 LT-B dns-dnsmasq.sh[32134]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
mar 01 18:37:37 LT-B kernel: Freezing user space processes
mar 01 18:37:37 LT-B kernel: Freezing user space processes completed (elapsed 0.002 seconds)
mar 01 18:37:37 LT-B kernel: OOM killer disabled.
mar 01 18:37:37 LT-B kernel: Freezing remaining freezable tasks
mar 01 18:37:37 LT-B kernel: Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
mar 01 18:37:37 LT-B kernel: printk: Suspending console(s) (use no_console_suspend to debug)
mar 01 18:37:37 LT-B kernel: sd 4:0:0:0: [sda] Synchronizing SCSI cache
mar 01 18:37:37 LT-B kernel: ata5.00: Entering standby power mode
mar 01 18:37:37 LT-B kernel: ACPI: EC: interrupt blocked
mar 01 18:37:37 LT-B kernel: ACPI: PM: Preparing to enter system sleep state S3
mar 01 18:37:37 LT-B kernel: ACPI: EC: event blocked
mar 01 18:37:37 LT-B kernel: ACPI: EC: EC stopped
mar 01 18:37:37 LT-B kernel: ACPI: PM: Saving platform NVS memory
mar 01 18:37:37 LT-B kernel: Disabling non-boot CPUs ...
mar 01 18:37:37 LT-B kernel: smpboot: CPU 1 is now offline
mar 01 18:37:37 LT-B kernel: smpboot: CPU 2 is now offline
mar 01 18:37:37 LT-B kernel: smpboot: CPU 3 is now offline
mar 01 18:37:37 LT-B kernel: smpboot: CPU 4 is now offline
mar 01 18:37:37 LT-B kernel: smpboot: CPU 5 is now offline
mar 01 18:37:37 LT-B kernel: smpboot: CPU 6 is now offline
mar 01 18:37:37 LT-B kernel: smpboot: CPU 7 is now offline

I cannot reproduce the problem, maybe it is related to specific s-states of some processors.
May I suggest to boot to the previous kernel, suspend, resume and look at the lines after

kernel: PM: suspend entry (whatever)

to see if anything interesting pops out?

1 Like

systemctl suspend acts the exact same way. Screen goes black, keyboard backlight shuts down, fans keep spinning, LED indicates no sleep.

Here is the output of sudo journalctl -b -1 | tail after a failed sleep mode:

bře 01 19:57:55 localhost.localdomain systemd-hostnamed[4831]: Hostname set to <localhost.localdomain> (transient)
bře 01 19:57:55 localhost.localdomain nscd[1386]: 1386 sleduje se soubor „/etc/resolv.conf“ (8)
bře 01 19:57:55 localhost.localdomain nscd[1386]: 1386 sleduje se adresář „/etc“ (2)
bře 01 19:57:55 localhost.localdomain systemd[1]: Reached target Sleep.
bře 01 19:57:55 localhost.localdomain dns-dnsmasq.sh[4868]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
bře 01 19:57:55 localhost.localdomain systemd[1]: Starting System Suspend...
bře 01 19:57:55 localhost.localdomain systemd-sleep[4886]: INFO: Skip running /usr/lib/systemd/system-sleep/grub2.sleep for suspend
bře 01 19:57:55 localhost.localdomain dns-dnsmasq.sh[4892]: <debug> NETWORKMANAGER_DNS_FORWARDER is not set to "dnsmasq" in /etc/sysconfig/network/config -> exit
bře 01 19:57:55 localhost.localdomain kernel: PM: suspend entry (s2idle)
bře 01 19:57:55 localhost.localdomain systemd-sleep[4857]: Entering sleep state 'suspend'...

Doesn’t seem like anything is wrong from these logs.

There is one strange thing I have noticed though. If I dock my laptop to an external monitor, sleep mode works like it should. If my laptop is only connected to a charger or to nothing, then it fails to fall asleep.

Oh yeah one more thing, once this happens, I can’t do anything, switching tty, keyboard shortcuts, nothing works. Only thing I can do is forcefully shut the laptop down.

Might it be related to the video driver in use? Please show:

sudo lspci -nnk |grep -E -A3 "VGA|3D"

(both with and without external monitor if anything changes)

Nothing changes if connected to monitor or not, here is the output:

sudo lspci -nnk |grep -E -A3 "VGA|3D"
[sudo] heslo pro root: 
pcilib: Error reading /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt [Radeon 680M] [1002:1681] (rev 02)
        Subsystem: Lenovo Device [17aa:3815]
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

This should be the default one in openSUSE Tumbleweed. I did no changes to the drivers except for installing codecs for hardware video acceleration in firefox.

After a bit of testing, it seems the USB-C hub somehow fixes things. I have an HDMI port I use for one external monitor and then I have an USB-C hub with an HDMI, USB-A and USB-C port and ethernet. If I have everything except the hub disconnected, sleep works fine. If I disconnect the hub, the device fails to fall asleep.

I have tried pressing ALT + PrintScreen + b to forcefully shut the pc down but the laptop didn’t do anything unfortunately so I don’t think magic sysrq works in that stage or maybe I did something wrong. I have looked at the kernel files and it is enabled.

Magic Sysrq won’t work in case of a kernel panic.
Might want to configure kdump to figure out if there’s one:

Interesting… can you suspend, then resume (with the USB-C hub connected) and then post the few lines in the journal between:

kernel: PM: suspend entry (s2idle)

and the beginning of the resume process, something like:

kernel: ACPI: PM: Waking up from system sleep state (whatever)

to see if there is something related?

Meanwhile, looking up the net with “amd rembrandt suspend” returns a ton of results, mainly about early 6.x kernels, so maybe there is a regression in 6.7.6 and/or AMD code.
I’m not familiar with AMD HW so I cannot help much here :frowning:

Just for reference, the following kernel commit to 6.7.6 sounds a bell, although I cannot say if it might be related to the problem discussed here:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.7.6
Maybe filing a bug report at https://bugzilla.opensuse.org
is the best way to engage kernel experts.

1 Like