[libvirt] [PATCH 0/5]qemu: add usb-bot scsi controller support

Daniel P. Berrange berrange at redhat.com
Tue Sep 3 09:38:08 UTC 2013


On Mon, Sep 02, 2013 at 05:38:39PM +0800, Guannan Ren wrote:
> 
> BZ:https://bugzilla.redhat.com/show_bug.cgi?id=917702
> qemu patch:http://lists.gnu.org/archive/html/qemu-devel/2013-01/msg02200.html
> 
> These patch aims to add usb-bot SCSI controller support for libvirt.
> As usb-storage libvirt already supported, usb-bot only supports one
> SCSI target with SCSI ID 0.
> The difference is that usb-storage creates SCSI HBA and additionaly
> either a scsi-disk or a scsi-generic device, usb-bot only creates the
> SCSI HBA. we can attach a SCSI device to it with another -device.
> 
> usb-bot supports a single target and a number of luns. The limit is
> 15 luns (0~15 LUN ID) and they must be contiguous(using lun 0 and 2
> without 1 doesn't work).
> 
> Athought usb-bot is a SCSI controller it needs to be attached to a
> exsiting USB controller for work. So it has to use address of usb type.
> 
> Libvirt XML:
> 
> <devices>
>    ...
>    <disk type='file' device='disk'>
>      <driver name='qemu' type='raw'/>
>      <source file='/var/lib/libvirt/images/disk.qcow2'/>
>      <target dev='sdc' bus='scsi'/>
>      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>    </disk>
>    <controller type='usb' index='0'/>
>    <controller type='scsi' index='0' model='usb-bot'>
>      <address type='usb' bus='0' port='1'/>
>    </controller>
>     ...
> </devices>

How does this work from a hotplug POV. With usb-storage you could
just hotplug the <disk> device. Now it seems we need two separate
hotplug calls one of the <controller> and one for the <disk> and
the reverse.

> 
> The QEMU commandline:
> 
> qemu ${other_vm_args}                          \
>      -device piix3-usb-uhci,id=usb             \
>      -device usb-bot,id=scsi0,bus=usb.0,port=1 \
>      -drive file=/var/lib/libvirt/images/disk.qcow2,if=none,id=drive-scsi0-0-0-0,format=raw \
>      -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0
> 
> As the usb-storage creates scsi disk automatically which doesn't let
> you set scsi-disk properties such as vendor, product, wwn, channel,
> scsi-id and lun. So QEMU guys prefer usb-bot to usb-storage.
> So this is the first part of the whole work. Next step will replace
> usb-storage with usb-bot when disk in xml uses usb bus like
> <disk ...>
>   <...>
>   <target bus='usb'>
> </disk>

I'm not really a fan of introducing 2 different ways to configure
the exact same device.


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list