https://bugzilla.kernel.org/show_bug.cgi?id=221451

            Bug ID: 221451
           Summary: Lenovo Yoga 7 (AMD) intermittently fails to resume
                    from s2idle suspend under GNOME
           Product: ACPI
           Version: 2.5
          Hardware: AMD
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Power-Sleep-Wake
          Assignee: [email protected]
          Reporter: [email protected]
        Regression: No

SUMMARY
Lenovo Yoga 7 (AMD) fails to resume from s2idle suspend ~75% of the time under
GNOME, causing hardware reset.


ENVIRONMENT
6.19.14-200.fc43.x86_64
NAME="Fedora Linux"
VERSION="43 (Workstation Edition)"
RELEASE_TYPE=stable
GNOME Shell 49.6


DESCRIPTION
I had an issue where maybe 75% of the time, my system was failing to resume
from a the s2idle suspend state, indiscriminate of how I entered or exited it,
e.g. closing the lid, running systemctl suspend, etc. 

The system would attempt to wake for a couple seconds before failing and
rebooting altogether. 

This issue was only present on the following configurations during testing: 
Pop!_OS with CosmicDE -> fine 
EndeavourOS with GNOME -> broken 
Arch with Hyprland -> fine 
Fedora with CosmicDE -> fine 
Fedora with Xfce -> fine 
Fedora with GNOME -> broken   

I was struggling to find any meaningful details from journalctl, since on a
failed wakeup, the last logged entry was always something like

Apr 28 21:12:00 nox systemd-sleep[9158]: Performing sleep operation
'suspend'...
Apr 28 21:12:00 nox kernel: PM: suspend entry (s2idle)


EVIDENCE
After a ton of digging, I found that the issue was actually related to what I
believe is a race condition between GNOME gsd-power and the _Q92 EC event.   

sudo journalctl -b -1 -k | grep -iE "acpi"

Apr 29 14:56:18 nox kernel: ACPI Error: Thread 504246464 cannot release Mutex
[ECMT] acquired by thread 226623488 (20250807/exmutex-378)

Apr 29 14:56:18 nox kernel: ACPI Error: Aborting method _SB.PCI0.LPC0.EC0.ECCC
due to previous error (AE_AML_NOT_OWNER) (20250807/psparse-529)

Apr 29 14:56:18 nox kernel: ACPI Error: Aborting method _SB.PCI0.LPC0.EC0.RPAM
due to previous error (AE_AML_NOT_OWNER) (20250807/psparse-529)

Apr 29 14:56:18 nox kernel: ACPI Error: Aborting method _SB.PCI0.LPC0.EC0._Q92
due to previous error (AE_AML_NOT_OWNER) (20250807/psparse-529)

As I understand, the _Q92 EC event on Lenovo IdeaPads is a lid sensor
notification. When the system tries to wake up, gsd-power acquires the EC lock
to run some hardware queries to obtain diagnostics on the systems state, e.g.
battery state, brightness levels, etc.  

During this time, the _Q92 event fires, fails to acquire the lock that's being
held by gsd-power, and panics. 

This is why the issue is intermittent. If gsd-power finishes it's queries
before the _Q92 EC event fires, the lock is released, and ~25% of the time the
system reboots without issue.   


WORKAROUND
I was able to fix this by silencing EC events during wakeup: 
sudo grubby --update-kernel=ALL --args="acpi_ec_no_wakeup=1"

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to