** Tags added: kernel-daily-bug -- You received this bug notification because you are subscribed to linux in Ubuntu. Matching subscriptions: Bgg, Bmail, Nb https://bugs.launchpad.net/bugs/2167115 Title: amd_pmc: hard hang entering s2idle on ThinkPad P14s Gen 6 AMD (Ryzen AI 9 HX PRO 370) Status in linux package in Ubuntu: New Bug description: # amd_pmc: hard hang entering s2idle on ThinkPad P14s Gen 6 AMD (Ryzen AI 9 HX PRO 370) ## Summary On a Lenovo ThinkPad P14s Gen 6 AMD, entering suspend-to-idle wedges the machine permanently. The kernel writes `PM: suspend entry (s2idle)` and never returns. There is no oops, no panic, no watchdog reset — the system is simply dead and only a hard power-off recovers it. **Unloading `amd_pmc` makes suspend work reliably. Reloading it brings the hang straight back.** This was verified as an A/B/A within four minutes on an otherwise idle machine. The hang is *past* every device suspend callback (proven with `/sys/power/pm_test`), so it is in the platform/SMU hardware-entry path rather than in any device driver. ## Affected system | | | |---|---| | Model | Lenovo ThinkPad P14s Gen 6 AMD, `21RV0016CK` | | CPU | AMD Ryzen AI 9 HX PRO 370 w/ Radeon 890M (family 26, model 36, stepping 0) | | BIOS | LENOVO `R2XET40W (1.20 )`, 2026-05-26 (latest available per `fwupdmgr get-upgrades`) | | Distro | Ubuntu 25.10 (Questing Quokka) | | Kernels | 6.17.0-41-generic **and** 6.17.0-40-generic — both affected | | Driver | `amd_pmc`, `CONFIG_AMD_PMC=m`, ACPI device `AMDI000A:00` | | SMU | `smu_fw_version` 93.23.0, `smu_program` 11 | | Sleep | `/sys/power/state` = `freeze mem`; `mem_sleep` = `[s2idle]`; no S3 offered by firmware | | | `Low-power S0 idle used by default for system suspend` | Kernel command line: ``` BOOT_IMAGE=/boot/vmlinuz-6.17.0-41-generic root=UUID=... ro quiet splash amd_pstate=active resume=UUID=... resume_offset=123500544 amdgpu.sg_display=0 crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M vt.handoff=7 ``` `amd_pmc` probes silently — it emits no messages at all on a normal boot. ## Symptom Every log ends identically: ``` kernel: PM: suspend entry (s2idle) <nothing further; journal never flushed> ``` No resume, no error return, no `last_failed_dev`. `/sys/power/suspend_stats` shows the attempt was never completed rather than failed. ## Reproducer ```sh modprobe amd_pmc # if not already loaded rtcwake -m mem -s 20 # or: echo mem > /sys/power/state ``` On this machine, since 2026-09-11 10:08 this hangs **100% of the time**. ## Evidence: A/B/A All timestamps 2026-09-11, same boot session where noted, machine otherwise idle. ### A — `amd_pmc` loaded: 7 hangs, 7 attempts | Time | Method | Kernel | Dock | Power | Result | |---|---|---|---|---|---| | 10:08:54 | logind (`systemctl suspend`) | 6.17.0-41 | docked | AC | hang | | 11:49:56 | logind | 6.17.0-41 | docked | AC | hang | | 12:47:48 | `rtcwake -m mem -s 20` | 6.17.0-41 | docked | AC | hang | | 12:55:55 | `rtcwake -m mem -s 20` | **6.17.0-40** | docked | AC | hang | | 13:11:05 | `echo mem > /sys/power/state` (no RTC alarm) | 6.17.0-41 | **undocked** | **battery** | hang | | 13:24:07 | plain write, from text VT, `pm_debug_messages=1` | 6.17.0-41 | undocked | battery | hang | | 13:31:23 | `rtcwake` — control, after reload | 6.17.0-41 | undocked | battery | hang | Independent of kernel version, dock state, AC vs battery, and suspend method. ### B — `amd_pmc` removed: 3 clean cycles ``` 13:28:28 ######## amd_pmc REMOVAL TEST kernel=6.17.0-41-generic cycles=3 ######## 13:28:28 before: amd_pmc loaded=1 refcnt=0 13:28:29 amd_pmc REMOVED ok (lsmod now: 0) 13:28:29 mem_sleep=[s2idle] state=freeze mem 13:28:29 START #1 (no amd_pmc) 13:28:35 RESUMED #1 rc=0 total_hw_sleep=0 13:28:40 START #2 (no amd_pmc) 13:28:46 RESUMED #2 rc=0 total_hw_sleep=0 13:28:51 START #3 (no amd_pmc) 13:28:55 RESUMED #3 rc=0 total_hw_sleep=0 13:29:00 ######## SURVIVED 3/3 WITHOUT amd_pmc ######## 13:29:00 amd_pmc reloaded ``` `total_hw_sleep` stays 0 without the driver, i.e. the SoC is not reaching deep s0ix — suspend/resume is simply shallower, but it works. ### A again — reloaded, hangs immediately ``` 13:31:23 ######## CONTROL: amd_pmc LOADED kernel=6.17.0-41-generic ######## 13:31:23 amd_pmc loaded=1 bound=1 13:31:23 START #1 (amd_pmc LOADED - expect hang) rtcwake: wakeup from "mem" using /dev/rtc0 at ... <dead> ``` This control rules out the alternative explanation that the failure window simply closed on its own between B and the end of A. ## What was ruled out **Phase bisect via `/sys/power/pm_test` — 30 cycles, 0 failures:** | Mode | Cycles | Result | |---|---|---| | `freezer` | 10 | clean | | `devices` | 10 | clean | | `platform` | 10 | clean | | `processors` | — | rejected: `PM: Unsupported test mode for suspend to idle` (-EAGAIN) | | `core` | — | rejected, same | `freezer`/`devices`/`platform` are the complete set s2idle accepts, and all pass. So task freezing, every device suspend callback, and ACPI platform prepare are all clean. The wedge is in what happens *after* those — the hardware entry. Also eliminated by direct test: - **Kernel regression** — 6.17.0-40 and 6.17.0-41 behave identically. - **Device drivers** — xHCI controllers, USB4/Thunderbolt routers (`NHI0`/`NHI1`), r8169 Wake-on-LAN: all covered by the clean `devices` stage. - **Dock / external display / USB-C** — hangs occur docked and undocked. - **AC vs battery** — hangs occur on both. - **`rtcwake` as a confound** — a plain `echo mem > /sys/power/state` with no RTC alarm hangs identically. - **Userspace** — hangs occur via logind and via a direct sysfs write that bypasses logind, NetworkManager teardown and all sleep hooks entirely. - **Out-of-tree modules** — `/proc/sys/kernel/tainted` = 0, none loaded. ## Why there is no trace to attach This is the frustrating part, and it is structural rather than a lack of trying: - **`pm_trace=1`** recorded nothing usable. The next boot read `PM: RTC time: 00:00:15, date: 2001-01-01` → `PM: Magic number: 1:0:0`, i.e. file hash 0 and dev hash 0 — no trace event was ever stored. Consistent with the hang being past all device callbacks, which is where `pm_trace` hooks. - **Console capture is impossible.** The hang is after device suspend, so amdgpu has already powered off the panel. Nothing printed after that point can be displayed, at any loglevel, on any VT. Confirmed empirically with `pm_debug_messages=1` + `console_suspend=N` from a text console: blank. - **netconsole / USB-serial** fail for the same reason — NIC and USB are already suspended at that point. The machine has no physical serial port. - **pstore** backend is `efi_pstore` only (no ramoops); it captures oops/panic, and a wedge is neither. `/sys/fs/pstore` is empty. No BERT, no MCE. ## Gap I could not close `/sys/kernel/debug/amd_pmc/` (`s0ix_stats`, `smu_fw_info`, `amd_pmc_idlemask`) is **unreadable even as root**, because the kernel is locked down under EFI Secure Boot: ``` Kernel is locked down from EFI Secure Boot mode; see man kernel_lockdown.7 /sys/kernel/security/lockdown: none [integrity] confidentiality ``` If `s0ix_stats` would help, I can disable Secure Boot and re-run — please say so and I will attach it. ## Additional data point: the failure rate changed From 2026-08-18 to 2026-09-10 the hang rate was roughly **16% (10 hangs / 51 suspends)**. Since 2026-09-11 10:08 it has been **100% (7/7)**. Nothing in the software changed in that window — the only package activity was userspace (browsers, JDKs, mssql-tools); no kernel, firmware, or driver update, and the BIOS is unchanged. This suggests a state-dependent trigger that can latch, which may be a useful clue about the SMU handshake's failure mode. ## Workaround ```sh echo "blacklist amd_pmc" | sudo tee /etc/modprobe.d/blacklist-amd-pmc.conf sudo update-initramfs -u ``` Suspend then works; deep s0ix residency is lost, so sleep power draw increases. ## Happy to provide Anything else that would help — `acpidump`, full `dmesg`, `s0ix_stats` with Secure Boot disabled, or testing a patch or a debug kernel. The machine reproduces this 100% of the time right now, so patch turnaround is fast. ProblemType: Bug DistroRelease: Ubuntu 25.10 Package: linux-image-6.17.0-41-generic 6.17.0-41.41 ProcVersionSignature: Ubuntu 6.17.0-41.41-generic 6.17.13 Uname: Linux 6.17.0-41-generic x86_64 ApportVersion: 2.33.1-0ubuntu3 Architecture: amd64 CasperMD5CheckResult: pass CurrentDesktop: ubuntu:GNOME Date: Fri Sep 11 16:13:30 2026 InstallationDate: Installed on 2025-12-03 (282 days ago) InstallationMedia: Ubuntu 25.10 "Questing Quokka" - Release amd64 (20251007) MachineType: LENOVO 21RV0016CK ProcFB: 0 amdgpudrmfb ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-6.17.0-41-generic root=UUID=2b934d1c-fc0d-4007-bf73-a6b393110cfd ro quiet splash amd_pstate=active resume=UUID=2b934d1c-fc0d-4007-bf73-a6b393110cfd resume_offset=123500544 amdgpu.sg_display=0 crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M vt.handoff=7 RelatedPackageVersions: firmware-sof N/A linux-firmware 20250901.git993ff19b-0ubuntu1.11 SourcePackage: linux UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 05/26/2026 dmi.bios.release: 1.20 dmi.bios.vendor: LENOVO dmi.bios.version: R2XET40W (1.20 ) dmi.board.asset.tag: Not Available dmi.board.name: 21RV0016CK dmi.board.vendor: LENOVO dmi.board.version: SDK0T76576 WIN dmi.chassis.asset.tag: No Asset Tag dmi.chassis.type: 10 dmi.chassis.vendor: LENOVO dmi.chassis.version: None dmi.ec.firmware.release: 1.12 dmi.modalias: dmi:bvnLENOVO:bvrR2XET40W(1.20):bd05/26/2026:br1.20:efr1.12:svnLENOVO:pn21RV0016CK:pvrThinkPadP14sGen6AMD:rvnLENOVO:rn21RV0016CK:rvrSDK0T76576WIN:cvnLENOVO:ct10:cvrNone:skuLENOVO_MT_21RV_BU_Think_FM_ThinkPadP14sGen6AMD: dmi.product.family: ThinkPad P14s Gen 6 AMD dmi.product.name: 21RV0016CK dmi.product.sku: LENOVO_MT_21RV_BU_Think_FM_ThinkPad P14s Gen 6 AMD dmi.product.version: ThinkPad P14s Gen 6 AMD dmi.sys.vendor: LENOVO To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2167115/+subscriptions
Комментариев нет:
Отправить комментарий