Hey,
Did some more testing.
Looks like qemu is sensitive to the order in which the controllers are passed.
Looks like they should be passed in a specific order (unless there is something
else which is wrong here).
Tried with two VMs, one in which the order was:
<controller index="0" model="ich9-uhci3" type="usb"/>
<controller index="0" model="ich9-ehci1" type="usb"/>
<controller index="0" model="ich9-uhci1" type="usb"/>
<controller index="0" model="ich9-uhci2" type="usb"/>
Failed on:
qemu-kvm: -device
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2: Parameter
'masterbus' expects an USB masterbus
qemu-kvm: -device
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2: Device
'ich9-usb-uhci3' could not be initialized
>From the qemu log file:
LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin HOME=/root USER=root LOGNAME=root
QEMU_AUDIO_DRV=spice /usr/libexec/qemu-kvm -S -M pc-0.14 -cpu
kvm64,+lahf_lm,+ssse3,-cx16 -enable-kvm -m 512 -smp
1,sockets=1,cores=1,threads=1 -name usb5 -uuid
d15a09b9-dde9-4b0e-8b76-5f7bc22be73a -smbios type=1,manufacturer=Red
Hat,product=RHEV
Hypervisor,version=6Server-6.3.0.2.el6,serial=44454C4C-4200-104C-8036-B9C04F30354A_84:2b:2b:bf:60:b6,uuid=d15a09b9-dde9-4b0e-8b76-5f7bc22be73a
-nodefconfig -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/usb5.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc
base=2012-05-16T06:52:23,driftfix=slew -device
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device
ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device
ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1
-device virtio-serial-pci,id=v!
irtio-serial0,bus=pci.0,addr=0x6 -drive
if=none,id=drive-ide0-1-0,readonly=on,format=raw,serial= -device
ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive
file=/rhev/data-center/189b1e74-7421-11e1-ae9c-bf3b1f8a7b5b/690bf6ec-75e9-40b3-b754-8c79ee84e5e5/images/fa990a35-dcea-489c-a515-3e22cff48c17/d0111f10-1034-4911-af2a-d19a2804dfc1,if=none,id=drive-virtio-disk0,format=raw,serial=fa990a35-dcea-489c-a515-3e22cff48c17,cache=writeback,werror=stop,rerror=stop,aio=threads
-device
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
-netdev tap,fd=26,id=hostnet0 -device
virtio-net-pci,netdev=hostnet0,id=net0,mac=00:1a:4a:16:01:52,bus=pci.0,addr=0x3
-chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channels/usb5.com.redhat.rhevm.vdsm,server,nowait
-device
virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm
-chardev spicevmc,id=charchannel1,name=vdagent -device virtseria!
lport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=
com.redhat.spice.0 -chardev pty,id=charconsole0 -device
virtconsole,chardev=charconsole0,id=console0 -spice port=5901,addr=0 -k en-us
-vga qxl -global qxl-vga.vram_size=67108864 -device
intel-hda,id=sound0,bus=pci.0,addr=0x4 -device
hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev
spicevmc,id=charredir0,name=usbredir -device
usb-redir,chardev=charredir0,id=redir0 -chardev
spicevmc,id=charredir1,name=usbredir -device
usb-redir,chardev=charredir1,id=redir1
char device redirected to /dev/pts/3
do_spice_init: starting 0.10.1
spice_server_add_interface: SPICE_INTERFACE_KEYBOARD
spice_server_add_interface: SPICE_INTERFACE_MOUSE
spice_server_add_interface: SPICE_INTERFACE_QXL
red_worker_main: begin
display_channel_create: create display channel
cursor_channel_create: create cursor channel
qemu-kvm: -device
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2: Parameter
'masterbus' expects an USB masterbus
qemu-kvm: -device
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2: Device
'ich9-usb-uhci3' could not be initialized
In the other VM the order was:
<controller index="0" model="ich9-ehci1" type="usb"/>
<controller index="0" model="ich9-uhci1" type="usb"/>
<controller index="0" model="ich9-uhci2" type="usb"/>
<controller index="0" model="ich9-uhci3" type="usb"/>
And it succeeded.
>From the qemu log:
LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin HOME=/root USER=root LOGNAME=root
QEMU_AUDIO_DRV=spice /usr/libexec/qemu-kvm -S -M pc-0.14 -cpu
kvm64,+lahf_lm,+ssse3,-cx16 -enable-kvm -m 512 -smp
1,sockets=1,cores=1,threads=1 -name usb3 -uuid
bfadbe4b-71e1-477c-ba65-e93a08fb8130 -smbios type=1,manufacturer=Red
Hat,product=RHEV
Hypervisor,version=6Server-6.3.0.2.el6,serial=44454C4C-4200-104C-8036-B9C04F30354A_84:2b:2b:bf:60:b6,uuid=bfadbe4b-71e1-477c-ba65-e93a08fb8130
-nodefconfig -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/usb3.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc
base=2012-05-15T12:21:46,driftfix=slew -device
ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device
ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2
-device virtio-serial-pci,id=v!
irtio-serial0,bus=pci.0,addr=0x5 -drive
if=none,id=drive-ide0-1-0,readonly=on,format=raw,serial=11111111-1111-1111-1111-111111111111
-device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive
file=/rhev/data-center/189b1e74-7421-11e1-ae9c-bf3b1f8a7b5b/690bf6ec-75e9-40b3-b754-8c79ee84e5e5/images/c6e2e4f8-cc19-43bc-8c6e-ea0b4ece0eb5/154e2704-4d49-433f-8282-440809107424,if=none,id=drive-virtio-disk0,format=raw,serial=c6e2e4f8-cc19-43bc-8c6e-ea0b4ece0eb5,cache=writeback,werror=stop,rerror=stop,aio=threads
-device
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
-chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channels/usb3.com.redhat.rhevm.vdsm,server,nowait
-device
virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm
-chardev spicevmc,id=charchannel1,name=vdagent -device
virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.s!
pice.0 -chardev pty,id=charconsole0 -device virtconsole,chardev=charco
nsole0,id=console0 -spice port=5900,addr=0 -k en-us -vga qxl -global
qxl-vga.vram_size=67108864 -device intel-hda,id=sound0,bus=pci.0,addr=0x3
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev
spicevmc,id=charredir0,name=usbredir -device
usb-redir,chardev=charredir0,id=redir0 -chardev
spicevmc,id=charredir1,name=usbredir -device
usb-redir,chardev=charredir1,id=redir1
Thank you,
Oved
----- Original Message -----
> From: "Daniel P. Berrange" <[email protected]>
> To: "Eric Blake" <[email protected]>
> Cc: [email protected]
> Sent: Tuesday, May 15, 2012 6:22:13 PM
> Subject: Re: [libvirt] [PATCH] Set a sensible default master start port for
> ehci companion controllers
>
> On Mon, May 14, 2012 at 03:47:57PM -0600, Eric Blake wrote:
> > On 05/14/2012 06:24 AM, Daniel P. Berrange wrote:
> > > From: "Daniel P. Berrange" <[email protected]>
> > >
> > > The uhci1, uhci2, uhci3 companion controllers for ehci1 must
> > > have a master start port set. Since this value is predictable
> > > we should set it automatically if the app does not supply it
> > > ---
> > > src/conf/domain_conf.c | 22
> > > ++++++++++++++++++
> > > .../qemuxml2argv-usb-ich9-ehci-addr.xml | 24
> > > +++++---------------
> > > 2 files changed, 28 insertions(+), 18 deletions(-)
> >
> > ACK. But shouldn't we also have a test in qemuxml2xmltest, by
> > using a
> > file in qemuxml2xmloutdata/, that shows that we generate the
> > correct
> > start port on output in response to a user omitting information
> > that we
> > can determine by default?
>
> Now I added a test case for the previous USB patch it automatically
> also tested the scenario you describe here.
>
> 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 :|
>
> --
> libvir-list mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/libvir-list
>
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list