[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/4] usb-bot: hotplug support
From: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-devel] [PATCH 3/4] usb-bot: hotplug support |
Date: |
Wed, 03 Feb 2016 08:58:46 +0100 |
On Di, 2016-02-02 at 19:16 +0100, Andreas Färber wrote:
> Am 02.02.2016 um 14:36 schrieb Markus Armbruster:
> > Gerd Hoffmann <address@hidden> writes:
> >
> >> This patch marks usb-bot as hot-pluggable device, makes attached
> >> property settable and turns off auto-attach in case the device
> >> was hotplugged.
> >>
> >> Hot-plugging a usb-bot device with one or more scsi devices can be
> >> done this way now:
> >>
> >> (1) device-add usb-bot,id=foo
> >> (2) device-add scsi-{hd,cd},bus=foo.0,lun=0
> >> (2b) optionally add more devices (luns 0 ... 15).
> >> (3) qom-set foo.attached = true
> >
> > This isn't exactly pretty, but it beats no hot plug.
> >
> > A general solution for hot plugging composite devices could perhaps be
> > prettier, but I'm not aware of any recent work in the area. Andreas,
> > Paolo?
>
> Not aware, no. Essentially we'd need a DeviceClass::dont_realize flag,
> right?
Naa, not that simple I think. We would need some way to create a group
of devices, then plug them all at once.
Case one is multi-function pci.
Case two are usb storage devices (bot + uas aka bulk-only-transport and
usb-attached-scsi).
I'm not aware of other cases.
Multifunction pci has been handled recently with a pci-specific hack:
pci functions are not visible to the guest until function 0 is plugged.
So you just have to plug them in the correct order (function 0 last) to
get things going. Works because the common pci slot implicitly groups
devices.
So this is handles the usb storage devices with a usb specific hack:
usb devices can exist without being visible to the guest
(attached=false). We can use that to create the device group (usb
storage adapter and the scsi device(s) connected to it) without the
guest seeing a half-composed device, when done we go flip the
visibility.
cheers,
Gerd