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

            Bug ID: 443986
           Summary: Use serial numbers to identify displays instead of
                    interface names
           Product: plasmashell
           Version: 5.23.0
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Multi-screen support
          Assignee: aleix...@kde.org
          Reporter: gudv...@gmail.com
                CC: plasma-b...@kde.org
  Target Milestone: 1.0

SUMMARY

Right now Plasma uses interface names as an unique identifier of display device
(e.g. monitor).

This approach raises significant issues on systems that can't provide
consistent names for interfaces.

For example, DisplayPort has support for using multiple displays over same
physical interface on GPU. This is called Multi-Stream Transport (MST) or
"daisy chaining".
To make it work, DRM driver would create virtual interface if it can detect
additional displays.

This behaviour makes it impossible to predict which number will be assigned to
display interface and thus makes identification by interface name (which
includes interface number) unreliable.

I personally had an issue with MST on KDE:
https://bugs.kde.org/show_bug.cgi?id=420616

Another example is a behaviour of AMDGPU driver which is related to MST but
internal changes in driver also caused issues in systems that do not use MST:
https://bugzilla.kernel.org/show_bug.cgi?id=206387

In short, AMD driver won't persist interface numbers so interface names are no
longer guaranteed to uniquely identify display device.
I can't say for sure but I didn't find any indication of such guarantee in the
past.
Probably relying on interface names in the past was a mistake that wasn't
noticed until MST devices became more widespread.

This also gave me an issue on KDE: https://bugs.kde.org/show_bug.cgi?id=443832

You can experience similar problems by plugging monitor to different interface
even if your drivers don't change interface numbers.


PROPOSED SOLUTION

Instead of using volatile interface names as monitor identifiers I suggest
using serial numbers of display devices.
This information is resistant to any changes in interface naming.
It will be the same after using different interface and even after replacing
GPU.

Information about serial number exists in EDID and XOrg can at least show it in
logs:

[    47.193] (II) AMDGPU(0): Serial No: ABCXYZ123QWERTY
[    47.193] (II) AMDGPU(0): Monitor name: BenQ XX1234Q
--
[    47.196] (II) AMDGPU(0): Serial No: ASDF9876IOP321
[    47.196] (II) AMDGPU(0): Monitor name: DELL X4321P


SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.23.0
KDE Frameworks Version: 5.87.0
Qt Version: 5.15.2
Kernel Version: 5.14.12-arch1-1 (64-bit)
Graphics Platform: X11
Graphics Processor: AMD VEGAM 

ADDITIONAL INFORMATION

This issue is very similar to problems that were causing problems in
network/storage devices enumeration.
More on that here:
-
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
- https://wiki.debian.org/Part-UUID

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

Reply via email to