On Thu, 14 Feb 2019 16:05:35 +0100 Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote: > On 14.02.2019 15:54, Cornelia Huck wrote: > > On Thu, 14 Feb 2019 14:51:01 +0100 > > Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote: > > Pierre, > this is independent from this series and should have been sent separately. > In the end (when we have the final solution) this will require cc stable. > > > >> Libudev relies on having a subsystem link for non-root devices. To > >> avoid libudev (and potentially other userspace tools) choking on the > >> matrix device let us introduce a vfio_ap bus and with that the vfio_ap > >> bus subsytem, and make the matrix device reside within it. > > > > How does libudev choke on this? It feels wrong to introduce a bus that > > basically does nothing... > > I have seen libvirt looping when a matrix device was available before the > libvirt start. > Marc Hartmayer debugged this and circumvented this in libvirt: > https://www.redhat.com/archives/libvir-list/2019-February/msg00837.html > > Still libudev expects a subsystem link in the matrix folder when doing the > udev_enumerate_scan_devices call. > > Having a bus is one way of adding a subsystem link. Ugh, that feels really broken. Adding a bus is probably the easiest way to get this working, though :/