[kwin] [Bug 524273] New: Screens briefly freeze due to plugged in but disabled tv

[email protected]
Newsgroups gmane.comp.kde.devel.bugs
Message-ID <[email protected]/>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.