On Mon, Sep 07, 2020 at 12:48:21 +0100, Daniel Berrange wrote:
On Mon, Sep 07, 2020 at 01:45:09PM +0200, Gerd Hoffmann wrote:
> Hi,
[...]
> > 1. doing this transparently with a controller per device,
just like the
> > usb-storage controller does internally (ok - it's just a scsi-cd there),
> > even if the usb-bot supports multiple LUNs. Guess multiple LUNs would
> > act like an USB hub?
>
> usb-storage simply doesn't support multiple LUNs, so when going that
> route you can completely ignore the multiple LUN case.
>
> > 2. invalidating the cdrom with USB addresses configurations and exposing
> > the controller in the XML. This seems easier from the libvirt code POV,
> > like:
> >
> > <controller type='scsi' model='usb-bot'>
> > <address type='usb' port='1'/>
> > </controller>
>
> Yep, that is the other obvious approach.
>
> > So I still would like to see my much simpler solution merged.
>
> See above, but I'm not a libvirt maintainer so that's not for me to
> judge. I'm just pointing out that this can be fixed without switching
> back to the old -drive syntax.
Switching back to -drive is out of the question. We've worked very hard
to eliminate its usage and get to an exclusively -blockdev based solution
because supporting both approaches in parallel complicates too much.
Yes, indeed.
We theoretically can emulate a complex device consisting of a USB-bot
device including the cdrom for this including the hotplug operations in
a single step. I will need to investigate this, but I'm backed up on my
email as I was on vacation.