On Thu, May 07, 2020 at 16:49:14 +0200, Gerd Hoffmann wrote:
Hi,
For usb device pass-through (aka -device usb-host) it would be very
useful to pass file handles from libvirt to qemu. The workflow would
change from ...
(1) libvirt enables access to /dev/usb/$bus/$dev
(2) libvirt passes $bus + $dev (using hostbus + hostaddr properties)
to qemu.
(3) qemu opens /dev/usb/$bus/$dev
... to ...
(1) libvirt opens /dev/usb/$bus/$dev
(2) libvirt passes filehandle to qemu.
Question is how can we pass the file descriptor best? My idea would be
to simply add an fd property to usb-host:
* Coldplug would be "-device usb-host,fd=<nr>" (cmd line).
* Hotplug would be "device_add usb-host,fd=<getfd-name>" (monitor).
We have prior art for both approaches so it's fine.
Will that work from libvirt point of view?
Sure! Just please make sure that the new approach is detectable somehow.
Either via device-list-properties or query-qmp-schema.
Or does anyone have an better idea?
thanks,
Gerd
PS: background:
https://bugzilla.redhat.com/show_bug.cgi?id=1595525