Dell Inspiron 5425 Takes 60 Seconds To Resume From Suspend

#dell #inspiron #linux #suspend
ComputerDell Inspiron 5425
CPUAMD Ryzen 5625U (Barcelo)
RAM16GB
SWAP20GB
SSDSK Hynix 512GB BC711 (firmware: 41002131)
BIOS1.2.1
OSUbuntu 22.04
Linux Kernel5.15.0-40-generic



No S3 support and always S0

Because S3 should be fast because it means “suspend to RAM”, and S4 means “suspend to DISC”, so I doubt that this computer always suspends to S4. By running command below, it means this laptop does not have S3 state support and it always suspend to S0 state.

|
| sudo dmesg | grep S0 | [ 0.417411] ACPI: PM: (supports S0 S4 S5) |
| --- | --- |
| sudo cat /sys/power/state | freeze mem disk |
| sudo cat /sys/power/mem_sleep | [s2idle] |
| sudo journalctl -k | grep "suspend" | kernel: PM: suspend entry (s2idle)



Follow best practice to debug suspend

“Best practice to debug Linux* suspend/hibernate issues” is a complete guide to narrow down the problem if possible. So my situation matches “4.8 Long latency during suspend/resume (STI/STR/Hibernation)” so I do whatever it says. I follow this guide to add “initcall_debug no_console_suspend” into boot options and reboot. Disable async suspend by "echo 0 > /sys/power/pm_async". Then suspend with intel/pm-graph tool and this command "./analyze_suspend.py -rtcwake 30 -f -m freeze". After resuming, this tool generates report and it looks like this.

64 seconds to resume

nvme takes 61645.433 ms to resume

Caused by nvme



Dmesg & ftrace logs

dmesg logs:

[  559.976755] nvme 0000:02:00.0: PM: calling pci_pm_resume+0x0/0xf0 @ 3616, parent: 0000:00:01.2
[  592.948075] nvme nvme0: I/O 407 QID 1 timeout, aborting
[  592.948110] nvme nvme0: I/O 408 QID 1 timeout, aborting
[  592.948137] nvme nvme0: I/O 337 QID 11 timeout, aborting
[  592.948153] nvme nvme0: I/O 338 QID 11 timeout, aborting
[  621.620012] nvme nvme0: I/O 6 QID 0 timeout, reset controller
[  621.621983] nvme nvme0: Abort status: 0x371
[  621.621995] nvme nvme0: Abort status: 0x371
[  621.622003] nvme nvme0: Abort status: 0x371
[  621.622011] nvme nvme0: Abort status: 0x371
[  621.622029] PM: dpm_run_callback(): pci_pm_resume+0x0/0xf0 returns -16
[  621.622156] nvme 0000:02:00.0: PM: pci_pm_resume+0x0/0xf0 returned -16 after 61645374 usecs
[  621.622190] nvme 0000:02:00.0: PM: failed to resume: error -16
[  621.622223] mt7921e 0000:03:00.0: PM: calling pci_pm_resume+0x0/0xf0 @ 3616, parent: 0000:00:02.2
[  621.669436] nvme nvme0: 16/0/0 default/read/poll queues

ftrace logs: https://blog-img.artyomliou.ninja/wp-content/uploads/2022/07/ftrace_20220701.txt



The thread “NVME fails to reset after resume from sleep on “Lenovo Thinkpad P14s Gen 2 AMD” when IOMMU is enabled” on gitlab shows that "iommu=pt" in boot options could be a workaround, but it does not work for me.

Tried but not working solutions as below:

|

iommu=ptNot working
amd_iommu=ptNot working
iommu=softNot working
iommu=offNot working, WIFI down
Boot with 5.18 kernelNot working



Response from Dell Support

They said that they wont fix this, because Ubuntu is free to use, not commercial.



References