ThinkPad T14 Gen 5 (Intel): Issues with sleep/suspend on Fedora 40 and 41

Continuing from another similar topic.

System Details Report


Report details

  • Date generated: 2024-09-17 22:08:57

Hardware Information:

  • Hardware Model: Lenovo ThinkPad T14 Gen 5
  • Memory: 32.0 GiB
  • Processor: Intel® Core™ Ultra 5 125U × 14
  • Graphics: Intel® Graphics (MTL)
  • Disk Capacity: 512.1 GB

Software Information:

  • Firmware Version: N47ET19W (1.08 )
  • OS Name: Fedora Linux 41 (Workstation Edition Prerelease)
  • OS Build: (null)
  • OS Type: 64-bit
  • GNOME Version: 47
  • Windowing System: Wayland
  • Kernel Version: Linux 6.11.0-63.fc41.x86_64

Running ./s0ix-selftest-tool.sh -s gives me:

---Check S2idle path S0ix Residency---:

The system OS Kernel version is:
Linux DevStation 6.11.0-63.fc41.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Sep 15 17:48:54 UTC 2024 x86_64 GNU/Linux

---Check whether your system supports S0ix or not---:

Low Power S0 Idle is:1
Your system supports low power S0 idle capability.



---Check whether intel_pmc_core sysfs files exit---:

The pmc_core debug sysfs files are OK on your system.



---Judge PC10, S0ix residency available status---:

Test system supports S0ix.y substate

S0ix substate before S2idle:
  S0i2.0 S0i2.1 S0i2.2

S0ix substate residency before S2idle:
  0 0 0

The system failed to place S2idle entry command by turbostat,     
please check if the suspend is failed or turbostat tool version is old     
e.g. did you make turbostat tool executable or separately run S2idle command:     
rtcwake -m freeze -s 15

@mpearson as requested. If there’s something else i can/should do, please let me know. Keep in mind that I’m not all the experienced with all this tho

Removed amd

I guess I forgot to describe the actual issue :man_facepalming: In short, nothing happens when i close the lid and when I select ‘Suspend’, the screen goes blank for a moment and then returns with lock screen. Same behavior also on Fedora 40.

Fedora 41 is unstable at this time, so anything is possible.

Is Fedora 40 up to date? How are you running F40 and F41 on the same machine? Are you dual booting the two operating systems?

I got the machine today. Installed 40 at first and then decided to try out 41 (clean install). And yes, 40 was up to date.

Please share what is the result of the command cat /sys/power/mem_sleep ?

If it doesn’t work, try sudo as always. :slight_smile:

But I would recommend that you fall back to or reinstall F40 first. A beta version is always for testing purposes and not for productivity work.

[s2idle]

Excellent.

Now do as the following:

$ echo "deep" > /sys/power/mem_sleep

Check again:
$ cat /sys/power/mem_sleep

If it is s2idle [deep], you are good.

Reboot and see if the machine goes to sleep now.

[ 0.631989] ACPI: PM: (supports S0 S4 S5)

This makes me wonder tho. What is the expected behavior, when your system doesn’t support S3, but you close the lid or request suspend? Is the system not meant go quiet anymore, because that’s what my boomer ass was expecting :laughing:

Can you make sure you have turbostat on the system (and you can use the one that is in the S0ixSelftestTool repository that you got the test executable from).
Hopefully that will give you a fuller report - the one provided isn’t useful I’m afraid.

For your Q about suspend - it uses S0ix sleep (aka modern standby) instead (which replaces S3). Intel (and AMD) don’t support S3 on their CPUs any more - we only certify our systems with S0ix.

Mark

1 Like

I can reproduce this issue on Fedora 41 beta (kernel 6.11.0-0.rc5.43.fc41.x86_64) on T14 Gen5 Intel, looks like it may be related to the network card somehow.

S0ixSelftestTool output is the same. I poked around the script and looks like this line fails: echo freeze > /sys/power/state.

Specifically, it tries to suspend the machine (screen is shutdown), fails, and returns “write error: No such file or directory” (which triggers the script error @estonian276 pasted). Looking in the journal, I see these errors:

Oct 08 20:20:26 fedora kernel: e1000e: EEE TX LPI TIMER: 00000011
Oct 08 20:20:26 fedora kernel: e1000e 0000:00:1f.6: PM: pci_pm_suspend(): e1000e_pm_suspend [e1000e] returns -2
Oct 08 20:20:26 fedora kernel: e1000e 0000:00:1f.6: PM: dpm_run_callback(): pci_pm_suspend returns -2
Oct 08 20:20:26 fedora kernel: e1000e 0000:00:1f.6: PM: failed to suspend async: error -2
Oct 08 20:20:26 fedora kernel: PM: Some devices failed to suspend, or early wake event detected

If I do rmmod e1000e, or disable Wake-On-Lan (with ethtool -s <dev> wol d) and retry the same echo command, the laptop goes to suspend (the red dot on the thinkpad logo twinkles). Looks very much like this Ubuntu bug report: networking - Suspend fails, kworker acts up, Ethernet issue e1000e - Ask Ubuntu (where I got the WOL hint from)

Curiously, disabling WOL in bios doesn’t seem to make a difference (I guess the Linux driver overrides/ignores those settings).

this looks like 2306163 – Regression in Kernel 6.10 causes e1000e to prevent suspend if there is no active ethernet connection on Meteor Lake CPU
It seems that a patch is queued for kernel 6.11.3

1 Like

I also have an identical issue on my Vivobook Pro 15 OLED, running Fedora 41 (kernel 6.11.3-300.fc41.x86_64). However disabling wake-on-LAN does not fix it. This is what ./s0ix-selftest-tool.sh -s gives me:

---Check S2idle path S0ix Residency---:

The system OS Kernel version is:
Linux fedora 6.11.3-300.fc41.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Oct 10 19:18:36 UTC 2024 x86_64 GNU/Linux

---Check whether your system supports S0ix or not---:

Low Power S0 Idle is:1
Your system supports low power S0 idle capability.



---Check whether intel_pmc_core sysfs files exit---:

The pmc_core debug sysfs files are OK on your system.



---Judge PC10, S0ix residency available status---:

Test system supports S0ix.y substate

S0ix substate before S2idle:
  S0i2.0 S0i2.1 S0i2.2

S0ix substate residency before S2idle:
  0 0 0

Turbostat output: 
5.075730 sec
CPU%c1	CPU%c6	CPU%c7	Pkg%pc2	Pkg%pc3	Pkg%pc6	Pkg%pc8	Pk%pc10	SYS%LPI
10.82	57.58	26.43	21.81	0.00	0.00	0.00	0.00	0.00
6.20	91.63	0.00
5.41	92.45	0.00
5.47	92.47	0.00
4.67	93.26	0.00
5.19	92.68	0.00
3.68	93.68	0.00
4.74	92.82	0.00
5.78	91.48	0.00
11.45	0.51	47.09
11.45
7.62	0.39	77.69
7.62
46.86	1.29	40.54	21.81	0.00	0.00	0.00	0.00	0.00
46.85
7.25	0.00	88.96
7.25
10.65	0.05	80.41
10.65
6.87	0.01	88.21
6.87
8.28	89.64	0.00
7.29	88.87	0.00

CPU Core C7 residency after S2idle is: 26.43
CPU Package C-state 2 residency after S2idle is: 21.81
CPU Package C-state 3 residency after S2idle is: 0.00
CPU Package C-state 8 residency after S2idle is: 0.00
CPU Package C-state 10 residency after S2idle is: 0.00
S0ix residency after S2idle is: 0.00

Your system achieved PC2 residency: 21.81, but no PC8 residency during S2idle: 0.00

---Debug no PC8 residency scenario---:
modprobe cpufreq_stats failed
Loaded 0 prior measurements
RAPL device for cpu 0
RAPL Using PowerCap Sysfs : Domain Mask d
RAPL device for cpu 0
RAPL Using PowerCap Sysfs : Domain Mask d
Devfreq not enabled
glob returned GLOB_ABORTED
Leaving PowerTOP

Turbostat output: 

3.041700 sec
CPU%c1	CPU%c6	CPU%c7	Pkg%pc2	Pkg%pc3	Pkg%pc6	Pkg%pc8	Pk%pc10	SYS%LPI
11.26	56.76	27.69	35.53	0.00	0.00	0.00	0.00	0.00
6.17	91.50	0.00
8.05	89.62	0.00
5.88	91.93	0.00
5.10	92.66	0.00
4.79	93.05	0.00
5.79	92.07	0.00
5.13	92.38	0.00
5.67	92.17	0.00
10.69	0.12	68.69
10.69
10.45	0.63	65.71
10.45
39.36	1.02	54.95	35.53	0.00	0.00	0.00	0.00	0.00
39.35
9.32	0.72	79.09
9.32
9.63	0.14	87.46
9.63
10.37	0.02	87.22
10.37
13.93	82.71	0.00
7.61	87.36	0.00

Your CPU Core C7 residency is available: 27.69

Checking PCIe Device D state and Bridge Link state:

Available bridge device: 0000:00:01.0 0000:00:07.0 0000:00:1c.0 0000:00:1c.6 10000:e0:06.2
./s0ix-selftest-tool.sh: line 854: xxd: command not found
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")

The PCIe bridge link power management state is:
./s0ix-selftest-tool.sh: line 785: 16#: invalid integer constant (error token is "16#")
0000:00:01.0 

The link power management state of PCIe bridge: 0000:00:01.0 is not expected. 
which is expected to be L1.1 or L1.2, or user would run this script again.


The L1SubCap of the failed 0000:00:01.0 is:
		L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+

The L1SubCtl1 of the failed 0000:00:01.0 is:
		L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+


Checking PCI Devices tree diagram:
-[0000:00]-+-00.0  Intel Corporation Device 7d01
           +-01.0-[01]--+-00.0  NVIDIA Corporation AD107M [GeForce RTX 4050 Max-Q / Mobile]
           |            \-00.1  NVIDIA Corporation AD107 High Definition Audio Controller
           +-02.0  Intel Corporation Meteor Lake-P [Intel Arc Graphics]
           +-04.0  Intel Corporation Meteor Lake-P Dynamic Tuning Technology
           +-07.0-[02-2b]--
           +-08.0  Intel Corporation Meteor Lake-P Gaussian & Neural-Network Accelerator
           +-0a.0  Intel Corporation Meteor Lake-P Platform Monitoring Technology
           +-0b.0  Intel Corporation Meteor Lake NPU
           +-0d.0  Intel Corporation Meteor Lake-P Thunderbolt 4 USB Controller
           +-0d.2  Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #0
           +-0e.0  Intel Corporation Volume Management Device NVMe RAID Controller Intel Corporation
           +-12.0  Intel Corporation Meteor Lake-P Integrated Sensor Hub
           +-14.0  Intel Corporation Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller
           +-14.2  Intel Corporation Device 7e7f
           +-14.3  Intel Corporation Meteor Lake PCH CNVi WiFi
           +-15.0  Intel Corporation Meteor Lake-P Serial IO I2C Controller #0
           +-15.1  Intel Corporation Meteor Lake-P Serial IO I2C Controller #1
           +-16.0  Intel Corporation Meteor Lake-P CSME HECI #1
           +-19.0  Intel Corporation Meteor Lake-P Serial IO I2C Controller #4
           +-1c.0-[2c]----00.0  Genesys Logic, Inc GL9755 SD Host Controller
           +-1c.6-[2d]----00.0  Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller
           +-1f.0  Intel Corporation Device 7e02
           +-1f.3  Intel Corporation Meteor Lake-P HD Audio Controller
           +-1f.4  Intel Corporation Meteor Lake-P SMBus Controller
           \-1f.5  Intel Corporation Meteor Lake-P SPI Controller
-[10000:e0]-+-06.0  Intel Corporation RST VMD Managed Controller
            \-06.2-[e1]----00.0  Sandisk Corp WD Black SN770 / PC SN740 256GB / PC SN560 (DRAM-less) NVMe SSD

./s0ix-selftest-tool.sh: line 140: /sys/kernel/debug/dynamic_debug/control: Operation not permitted

Your system CPU Core C7, GFX RC6, PCIe Device D state and Link PM state are OK, 
but still did not achieve PC8 after powertop --auto-tune

Also the module e1000e is apparently not loaded, so maybe the cause is something else? I have little experience in Linux debugging.

Probably best to create a separate thread so other folk with Vivobook’s can comment (afraid I only know my way around the Lenovo devices).

As you have a Nvidia card in there, if you’re not already using it try with the Nvidia driver as a first step (you can install it from RPMfusion). The Nouveau driver has improved massively but suspend issues can still be challenging.

After that - see if you can disable devices on the PCIe bus from the BIOS, and see if that helps. Might help you track down which is the issue.

Do you have RST enabled? Wasn’t sure what the controller was.

Mark

No I do not have Nouveau. I’ll try disabling devices on e by one in the BIOS, that might help. Also I created a separate thread here.

Now, this discussion has begun suffocating me.

Good to know this. :bluethumb: