воскресенье

[Bug 2150605] Re: `i915 Arrow Lake-S: PHY A / C10 DPLL state mismatch on resume from long s2idle dwell — slow wake (5-10s) with retry storm`

Same failure signature on Meteor Lake-P (the existing reports are mostly Arrow Lake). Adding a clean A/B between two Ubuntu HWE kernels on identical hardware and cmdline. Hardware - Lenovo ThinkPad P1 Gen 7, machine type 21KV001RMX - BIOS N48ET34W (1.21), 2026-05-11 - iGPU: 00:02.0 Intel Meteor Lake-P [Intel Arc Graphics] [8086:7d55] rev 08, driver i915 - dGPU: 01:00.0 NVIDIA AD107GLM [RTX 1000 Ada Generation Laptop GPU] [10de:28b9], nvidia 580.173.02 (DKMS) - Panel: eDP-1, 2560x1600, port_clock 810000 (HBR3, lane_count: 4, use_c10: yes) - Firmware: DMC i915/mtl_dmc.bin v2.21, GuC 70.36.0 (kernel recommends 70.53.0), HuC 8.5.4 - ACPI advertises S0 S4 S5 — s2idle only, no S3 - Ubuntu 24.04.4 LTS, X11 session (GNOME), iGPU runtime PM at default control=auto Kernels kernel package result 7.0.0-28-generic (base 7.0.12) 7.0.0-28.28~24.04.1 BAD — 41–54 s black screen on every resume 6.17.0-40-generic 6.17.0-40.40~24.04.1 GOOD — resume ~2.5 s, zero i915 errors Same cmdline, same dock, same session type. Only the kernel changed. Symptom Every resume from s2idle: backlight on, screen black, machine unusable for ~40–55 s, then the desktop appears normally. No hard failure — purely a stall. Failure sequence (7.0.0-28) Root cause is visible at the very top: the C10 PHY message bus is dead, so the PLL is never programmed, and every subsequent atomic commit waits out its full 10 s timeout. i915 0000:00:02.0: [drm] *ERROR* Failed to bring PHY A to idle. i915 0000:00:02.0: [drm] *ERROR* PHY A Read 0c70 failed after 3 retries. i915 0000:00:02.0: [drm] *ERROR* PHY A Write 0c70 failed after 3 retries. i915 0000:00:02.0: [drm] *ERROR* Timeout waiting for DDI BUF A to get active i915 0000:00:02.0: [drm] *ERROR* Timed out waiting for DP idle patterns i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] flip_done timed out i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in pixel_rate (expected 282699, found 21444) i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in dpll_hw_state i915 0000:00:02.0: [drm] *ERROR* expected: i915 0000:00:02.0: [drm] *ERROR* cx0pll_hw_state: lane_count: 4, ssc_enabled: no, use_c10: yes, tbt_mode: no i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: clock: 810000, fracen: yes, i915 0000:00:02.0: [drm] *ERROR* found: i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: clock: 61440, fracen: no, i915 0000:00:02.0: [drm] *ERROR* c10pll_rawhw_state: i915 0000:00:02.0: [drm] *ERROR* tx: 0x0, cmn: 0x0 i915 0000:00:02.0: [drm] *ERROR* pll[0] = 0x0, pll[1] = 0x0, pll[2] = 0x0, pll[3] = 0x0 ... all 20 pll[] registers read back 0x0 ... i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in port_clock (expected 810000, found 61440) i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in min_voltage_level (expected 1, found 0) ------------[ cut here ]------------ i915 0000:00:02.0: [drm] pipe state doesn't match! WARNING: drivers/gpu/drm/i915/display/intel_modeset_verify.c:225 at verify_crtc_state+0x51b/0x6c0 [i915], CPU#17: Xorg/6093 Same 61440 vs 810000 parked-PLL value as the Arrow Lake reports in this bug. Then four consecutive 10 s timeouts, which is where the wall-clock goes: 09:04:08 [CRTC:150:pipe A] flip_done timed out 09:04:18 flip_done timed out / [CRTC:150:pipe A] commit wait timed out 09:04:29 [CRTC:150:pipe A] flip_done timed out 09:04:29 [CRTC:150:pipe A] DSB 1 timed out waiting for idle (current head=0x12fc000, head=0x0, tail=0x1080) 09:04:39 flip_done timed out / [CRTC:150:pipe A] commit wait timed out 09:04:49 flip_done timed out / [CONNECTOR:507:eDP-1] commit wait timed out 09:04:50 [drm] PHY A failed to change powerdown state Caller is the compositor's DPMS-on after resume: Call Trace: intel_modeset_verify_crtc+0x70/0xb0 [i915] intel_atomic_commit_tail+0x8bb/0xc80 [i915] intel_atomic_commit+0x2c0/0x310 [i915] drm_atomic_commit+0xaf/0xf0 drm_atomic_connector_commit_dpms+0xfc/0x110 drm_mode_obj_set_property_ioctl+0x1c3/0x450 drm_connector_property_set_ioctl+0x3a/0x60 drm_ioctl_kernel+0xb7/0x110 An earlier boot on the same kernel produced the identical chain from intel_dbuf_mbus_post_ddb_update → intel_crtc_wait_for_next_vblank → drm_crtc_wait_one_vblank (vblank wait timed out on crtc 0), so the entry point varies but the parked-PLL cause is the same. Good kernel (6.17.0-40), same machine, same cmdline PM: suspend entry (s2idle) Restarting tasks: Starting Restarting tasks: Done PM: suspend exit - suspend entry → suspend exit = 19 s wall, of which /sys/power/suspend_stats/last_hw_sleep = 16 551 862 µs actually asleep ⇒ kernel-side resume ≈ 2.5 s - Zero i915 errors in the whole boot. No PHY A, no DDI BUF, no flip_done. - Reproduced twice, once with the nvidia modules absent and once with them loaded — identical. Ruled out on this machine - i915.enable_psr=0 i915.enable_panel_replay=0 — verified applied via /proc/cmdline, no effect, identical trace. (Consistent with other reports here.) - nvidia: 6.17 resumes fast both with nvidia 580.173.02 unloaded and loaded. No nvidia frame appears anywhere in the failing stack. - PM core / s2idle itself: /sys/power/suspend_stats shows success incrementing and all failed_* counters at 0; firmware sleep counters populate normally. The stall is entirely in the display commit path after PM: suspend exit. Notes - Does not require a multi-hour dwell here: two failures on the same boot were 29 minutes apart, so the dwell between them was under half an hour. Every resume on 7.0.0-28 failed. - Ubuntu currently offers nothing newer on this line: apt policy linux-image-generic-hwe-24.04 gives candidate = installed = 7.0.0-28.28~24.04.1, so 24.04 HWE users have no upgrade path out of this. Working around it by pinning 6.17.0-40-generic. Attaching the full scrubbed kernel log for both the bad 7.0.0-28 boot and the good 6.17.0-40 boot. -- You received this bug notification because you are subscribed to linux in Ubuntu. Matching subscriptions: Bgg, Bmail, Nb https://bugs.launchpad.net/bugs/2150605 Title: `i915 Arrow Lake-S: PHY A / C10 DPLL state mismatch on resume from long s2idle dwell — slow wake (5-10s) with retry storm` Status in linux package in Ubuntu: Confirmed Bug description: This is what an investigation using claude code yielded regarding a wake-up from sleep issue: On HP ZBook Fury G1i 16 (Arrow Lake-S, integrated display engine identifying as meteorlake D0, PCI 8086:7d67), every resume from s2idle after a multi-hour dwell produces a stack of i915 *ERROR* messages from the C10 PHY / DPLL state-restore path. The driver retries and eventually recovers, so the display *does* come back, but the retry loop takes ~5-10 seconds — long enough that users report "the display didn't wake up." Short cycles (seconds-to-minutes of dwell) wake instantly with no errors. The error stack is byte-for-byte identical across two reproductions and across `i915.enable_psr=0`, `i915.enable_dc=0`, and `i915.enable_fbc=0`. Those flags do not reach the code path that's racing. Earlier, before `i915.enable_psr=0` was applied, the same regime caused hard hangs (`Atomic update failure on pipe A`) requiring power-cycle. PSR-disable converted the failure mode from "hang" to "slow recover" but did not eliminate it. `xe.force_probe=7d67` was also tested as a workaround. xe binds cleanly on this device but suffers a different bug: `Tile0: GT0: Engine reset engine_class=rcs guc_id=48 state=0x289` repeating across each suspend cycle (`drm_WARN_ON_ONCE(ret == -110)`), eventually wedging the display. Not viable as a workaround on this kernel. NVIDIA dGPU is fully exonerated: `nvidia-suspend.service` and `nvidia-resume.service` `Finished` cleanly across every cycle. ## System * Distro: Ubuntu 26.04 LTS (resolute) * Kernel: 7.0.0-14-generic #14-Ubuntu SMP PREEMPT_DYNAMIC Mon Apr 13 11:09:53 UTC 2026 x86_64 * Package: linux-image-7.0.0-14-generic 7.0.0-14.14 * Firmware pkg: linux-firmware 20260319.git217ca6e4.1ubuntu * HW: HP ZBook Fury G1i 16 inch Mobile Workstation PC, BIOS X96 Ver. 01.01.19 (2025-11-22) (latest per fwupdmgr) * iGPU: Intel Corporation Arrow Lake-S [Intel Graphics] [8086:7d67] (rev 06), driver: i915 * dGPU: NVIDIA Corporation GB205GLM [RTX PRO 3000 Blackwell Generation Laptop GPU] [10de:2f38] (rev a1), driver: nvidia 580.142 (open kernel modules) * Loaded i915 firmware: mtl_dmc.bin (v2.23), mtl_guc_70.bin v70.53.0, mtl_huc_gsc.bin v8.5.4 * Sleep mode: s2idle only (`ACPI: PM: (supports S0 S4 S5)` — firmware does not expose S3) * Kernel cmdline (current):   `quiet splash i915.enable_psr=0 i915.enable_dc=0 zswap.enabled=1 zswap.compressor=zstd zswap.zpool=zsmalloc zswap.max_pool_percent=20 i915.enable_fbc=0` * Session: KDE Plasma on Wayland (sddm) ## Reproduction 1. Boot, log in, do normal work (browser, IDE, terminals). 2. Close laptop lid (or `systemctl suspend`) for ≥2 hours. 3. Open lid / press a key. Expected: panel relights within ~500 ms, no kernel ERRORs. Actual: panel relights after ~5-10 s, journal contains the error stack below. ## Journal trace (boot 2026-04-29 05:48, dwell 05:51:11 → 07:59:21 = 2 h 8 min) ``` PM: suspend entry (s2idle) PM: Some devices failed to suspend, or early wake event detected PM: suspend exit PM: suspend entry (s2idle) [2 h 8 min later] PM: suspend exit i915 0000:00:02.0: [drm] *ERROR* Failed to bring PHY A to idle. i915 0000:00:02.0: [drm] *ERROR* PHY A Read 0c70 failed after 3 retries. i915 0000:00:02.0: [drm] *ERROR* PHY A Write 0c70 failed after 3 retries. i915 0000:00:02.0: [drm] *ERROR* Timeout waiting for DDI BUF A to get active i915 0000:00:02.0: [drm] *ERROR* Timed out waiting for DP idle patterns i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] flip_done timed out i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in pixel_rate                        (expected 1220171, found 92553) i915 0000:00:02.0: [drm] *ERROR* [CRTC:150:pipe A] mismatch in dpll_hw_state i915 0000:00:02.0: [drm] *ERROR* expected: i915 0000:00:02.0: [drm] *ERROR* cx0pll_hw_state: lane_count: 4, ssc_enabled: no,                                    use_c10: yes, tbt_mode: no i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: clock: 810000, fracen: yes, i915 0000:00:02.0: [drm] *ERROR* quot: 61440, rem: 0, den: 1, i915 0000:00:02.0: [drm] *ERROR* multiplier: 210, tx_clk_div: 0. i915 0000:00:02.0: [drm] *ERROR* found: i915 0000:00:02.0: [drm] *ERROR* c10pll_hw_state: clock: 61440, fracen: no, i915 0000:00:02.0: [drm] *ERROR* multiplier: 16, tx_clk_div: 0. ``` The expected vs found C10 PLL clock (810 MHz HBR3 vs 61 MHz fallback) is the key signal: the panel's eDP link comes back at the wrong rate, the driver retries and eventually re-locks at the correct rate. This is in `drivers/gpu/drm/i915/display/intel_cx0_phy.c` / DPLL state restore — below the layers reachable by `enable_psr` / `enable_dc` / `enable_fbc`. ## What I have already tried | change | wake outcome on long dwell | |---|---| | (default) | hard hang, `Atomic update failure on pipe A`, requires power-cycle | | `i915.enable_psr=0` (only) | clean wake on short cycles, untested at long dwell | | `i915.enable_psr=0 i915.enable_dc=0` | slow recover (~5-10 s) at 6 h 41 min dwell, full error stack | | `... i915.enable_fbc=0` (added) | same: slow recover, identical error stack at 2 h 8 min dwell | | `i915.force_probe=!7d67 xe.force_probe=7d67` | xe binds cleanly, but `GT0: Engine reset` storm during cycles, eventual wedge | linux-firmware is at the latest candidate for 26.04 (20260319.git217ca6e4.1ubuntu). linux-image-oem-26.04 does not exist yet. ## Why this matters This is a clean reproduction of a likely-upstream Arrow Lake-S regression in the cx0/c10pll DPLL state-restore path during s2idle resume. The error signature is highly diagnostic and consistent across runs. Fix has not landed in 7.0.0-14.14; would benefit from being picked into the 26.04 kernel from upstream once available. ProblemType: Bug DistroRelease: Ubuntu 26.04 Package: linux-image-7.0.0-14-generic 7.0.0-14.14 ProcVersionSignature: Ubuntu 7.0.0-14.14-generic 7.0.0 Uname: Linux 7.0.0-14-generic x86_64 ApportVersion: 2.34.0-0ubuntu2 Architecture: amd64 CasperMD5CheckMismatches: ./boot/grub/i386-pc/eltorito.img CasperMD5CheckResult: fail CurrentDesktop: KDE Date: Wed Apr 29 08:18:09 2026 InstallationDate: Installed on 2026-03-27 (33 days ago) InstallationMedia: Ubuntu 26.04 "Resolute Raccoon" - Daily amd64 (20260325) MachineType: HP HP ZBook Fury G1i 16 inch Mobile Workstation PC ProcFB: 0 i915drmfb ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-7.0.0-14-generic root=UUID=2b2b39cc-2151-49f5-9205-74e3f9f1f999 ro quiet splash i915.enable_psr=0 i915.enable_dc=0 zswap.enabled=1 zswap.compressor=zstd zswap.zpool=zsmalloc zswap.max_pool_percent=20 i915.enable_fbc=0 crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No PulseAudio daemon running, or not running as session daemon. SourcePackage: linux UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 11/22/2025 dmi.bios.release: 1.19 dmi.bios.vendor: HP dmi.bios.version: X96 Ver. 01.01.19 dmi.board.name: 8DE2 dmi.board.vendor: HP dmi.board.version: KBC Version 55.35.00 dmi.chassis.type: 10 dmi.chassis.vendor: HP dmi.ec.firmware.release: 85.53 dmi.modalias: dmi:bvnHP:bvrX96Ver.01.01.19:bd11/22/2025:br1.19:efr85.53:svnHP:pnHPZBookFuryG1i16inchMobileWorkstationPC:pvrSBKPFV3:rvnHP:rn8DE2:rvrKBCVersion55.35.00:cvnHP:ct10:cvr:skuB14E7AV:pfa103C_5336ANHPZBook: dmi.product.family: 103C_5336AN HP ZBook dmi.product.name: HP ZBook Fury G1i 16 inch Mobile Workstation PC dmi.product.sku: B14E7AV dmi.product.version: SBKPFV3 dmi.sys.vendor: HP To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2150605/+subscriptions

Комментариев нет:

Отправить комментарий