INC-2026-06-25-002: Investigation

Investigation

The system froze hard — no tty, no SSH, no network — so there is no live state to capture. All evidence must come from the previous boot’s journal and the current boot’s kernel state for comparison.

Step 1: Verify i915.enable_psr=0 is active

Confirm the PSR fix from INC-2026-05-23-002 is in effect, ruling out PSR as a contributing factor.

cat /proc/cmdline

Expected: i915.enable_psr=0 present in the output.

Step 2: Check previous boot for GPU/DRM errors

The crashed boot’s journal is the primary evidence source. Filter for GPU subsystem errors.

journalctl -b -1 --no-pager | grep -iE 'nvidia|i915|drm|gpu|hang|fault|error' | tail -50

Step 3: All errors from crashed boot

Broader view — any kernel or service errors that preceded or accompanied the freeze.

journalctl -b -1 -p err --no-pager | tail -30

Step 4: Hot-unplug events in crashed boot

Search specifically for monitor disconnect handling in the DRM subsystem.

journalctl -b -1 --no-pager | grep -iE 'hotplug|unplug|disconnect|connector' | tail -20

Step 5: Check for WAYLAND-1 phantom monitor

The WAYLAND-1 phantom output is an unresolved issue on this machine. If it was active at the time of disconnect, it may have contributed to the DRM reconfiguration failure.

hyprctl monitors -j | jq '.[].name'

If WAYLAND-1 appears, it confirms the phantom output is still respawning. Cross-reference with the hot-unplug investigation.

Step 6: Current boot GPU state (baseline comparison)

Capture current boot DRM messages for comparison against the crashed boot.

dmesg | grep -iE 'nvidia|i915|drm|gpu' | tail -30

Step 7: DRM atomic commit state

If the freeze is a DRM atomic commit deadlock, the kernel may have logged a hung task or RCU stall before the system became unresponsive.

journalctl -b -1 --no-pager | grep -iE 'hung_task|rcu.*stall|soft.*lockup|hard.*lockup|watchdog' | tail -20

Step 8: NVIDIA DRM modeset events

Check whether nvidia-open attempted a modeset during the hot-unplug that conflicted with i915.

journalctl -b -1 --no-pager | grep -iE 'nvidia.*modeset|nvidia.*atomic|nvidia.*commit' | tail -20

Hypotheses

# Hypothesis Status

1

DRM atomic commit deadlock — i915 and nvidia-open both respond to the hot-unplug event, and a lock contention in the DRM subsystem causes a kernel deadlock. Both GPUs have modeset=1.

Untested

2

WAYLAND-1 phantom output — the headless output triggers an additional DRM reconfiguration during hot-unplug, exceeding what the driver can handle atomically.

Untested

3

NVIDIA DRM fault on hot-unplug — nvidia-open attempts to reconfigure outputs it does not own (DP-5, DP-6 on card0), triggering a fault that propagates to i915 via shared DRM infrastructure.

Untested

4

i915 display pipe hang (non-PSR) — a different i915 code path from the PSR fix triggers a pipe hang during monitor removal, locking the display subsystem and cascading to a full system freeze via kernel panic or hung task.

Untested

Potential Mitigations to Investigate

  • monitor = WAYLAND-1, disable in hyprland.conf — prevents phantom output from participating in DRM reconfiguration

  • nvidia_drm.modeset=0 — removes NVIDIA from DRM atomic commits (may break PRIME offload)

  • Test with nomodeset for NVIDIA and i915-only modeset

  • Check if drm.edid_firmware or drm_kms_helper.poll=0 prevents hot-unplug detection entirely

  • Reproduce with dmesg -w and journalctl -f running on an SSH session while disconnecting the monitor