https://bugs.kde.org/show_bug.cgi?id=524273

            Bug ID: 524273
           Summary: Screens briefly freeze due to plugged in but disabled
                    tv
    Classification: Plasma
           Product: kwin
      Version First 6.7.2
       Reported In:
          Platform: Bazzite
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: wayland-generic
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

SUMMARY

A TV in standby attached to one DisplayPort output (DP-4, disabled in the
output configuration) periodically pulses the hotplug-detect line. Each pulse
causes a visible presentation stall (a fraction of a second) on ALL enabled
outputs simultaneously. The pulses arrive in pairs 1-2 s apart every 15-30
minutes, so the user experience is a paired system-wide hitch at random
intervals, with audio unaffected. Unplugging the TV's cable stops the hitches
completely.

During each pulse, kwin_wayland burns ~0.5-1.0 s of CPU (measured as 51-79
jiffies of utime+stime inside a 2 s sampling window), consistent with a
blocking re-probe of all connectors (EDID/DDC reads) on the hotplug event.
Note the connector state is IDENTICAL before and after each pulse pair, and
the flapping output is not even enabled — yet every enabled output stalls.

On this driver (nvidia-drm, open kernel modules) the hotplug uevents are
card-level with no CONNECTOR= property, so KWin presumably cannot tell which
connector changed and re-probes everything. That makes the blocking probe
worse, but the stall itself is compositor-side.

STEPS TO REPRODUCE





Multi-output Wayland session on an NVIDIA GPU (4 connectors used here:

DP-2, DP-3, DP-4, HDMI-A-2 on an RTX 4080, nvidia-drm open modules).



Connect a TV to one DP output, leave the output disabled in the display

configuration, and put the TV in standby.



Wait. The TV periodically re-asserts/drops HPD (many TVs do this in

standby for input scanning / quick-start).

OBSERVED RESULT

On every HPD pulse, all enabled outputs freeze for a fraction of a second;
pulses come in pairs so the freeze is felt twice, 1-2 s apart. Audio and
non-compositor workloads continue normally.

Kernel uevent monitor + per-connector sysfs snapshot on each event
(timestamps local):

18:07:35.165 EVENT KERNEL change .../drm/card2 (drm) HOTPLUG=1
18:07:35.167 STATE DP-2=connected/256 DP-3=connected/256 DP-4=connected/256
HDMI-A-2=connected/256
18:07:35.331 EVENT KERNEL change .../drm/card2 (drm) HOTPLUG=1
18:07:35.332 STATE DP-2=connected/256 DP-3=connected/256 DP-4=disconnected/0
HDMI-A-2=connected/256
18:07:36.187 EVENT KERNEL change .../drm/card2 (drm) HOTPLUG=1
18:07:36.188 STATE DP-2=connected/256 DP-3=connected/256 DP-4=disconnected/0
HDMI-A-2=connected/256
18:07:36.513 EVENT KERNEL change .../drm/card2 (drm) HOTPLUG=1
18:07:36.514 STATE DP-2=connected/256 DP-3=connected/256 DP-4=connected/256
HDMI-A-2=connected/256

(format: connector=status/EDID-bytes; DP-4 drops to disconnected with 0-byte
EDID for ~1.2 s, then returns; net state change: none.)

Simultaneous kwin_wayland CPU burst from a 2 s sampler
(utime+stime delta in jiffies per 2 s window, normally 0-5):

18:07:36  kwin_cpu delta=51   (~0.5 s CPU)
18:07:38  kwin_cpu delta=79   (~0.8 s CPU)

The same correlation was captured on an earlier occurrence (hotplug uevents
23:33:21-22, kwin deltas 52 and 74 at 23:33:22/23:33:24, previous day), and
the user-felt hitches match these timestamps exactly. Over one day the TV
flapped 22 times (roughly every 15-30 min); every flap produced the same
signature. System-side counters ruled out other causes: memory/IO PSI flat,
no major faults, no swap-in, GPU idle (0% util, no throttle reasons, no Xid
errors) at every event.

EXPECTED RESULT

A hotplug event — especially one affecting only a disabled output, and
doubly so one that resolves to "nothing changed" — should not interrupt
presentation on unrelated enabled outputs. Ideas: debounce HPD pulses,
re-probe connectors asynchronously off the presentation path, or compare
probed state and short-circuit when nothing changed before touching active
outputs.

SOFTWARE/OS VERSIONS

Operating System: Bazzite 44 (Fedora Atomic, bazzite-nvidia-open)
KDE Plasma Version: 6.7.2
KWin version: 6.7.2
Kernel Version: 7.1.3-ogc3.4.fc44.x86_64
Graphics: NVIDIA RTX 4080, driver 610.43.03 (open kernel modules), Wayland

ADDITIONAL INFORMATION

Workaround: unplugging the TV's DP cable stops the hitches entirely
(verified — zero uevents and zero hitches afterwards).

Full uevent/connector logs and the 2 s system sampler logs are available on
request.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to