On Wed, May 04, 2011 at 10:17:39PM +0800, guan qin wrote: > Hi, > I try to use VT-d, but meet with a strange problem . > > I create a VM through "virsh create ***.xml",as follows: > root@shahe26:~# virsh create vt_d_debian.xml > Domain vt_d_debian created from vt_d_debian.xml > user.log: > May 4 06:53:30 shahe26 libvirtd: 06:53:30.649: warning : > qemudParsePCIDeviceStrs:1422 : Unexpected exit status '1', qemu probably > failed > May 4 06:53:30 shahe26 libvirtd: 06:53:30.805: warning : > qemudParsePCIDeviceStrs:1422 : Unexpected exit status '1', qemu probably > failed > May 4 06:53:38 shahe26 libvirtd: 06:53:38.393: error : > qemuMonitorCommandWithHandler:255 : cannot send monitor command 'info > balloon': Connection reset by peer > May 4 06:53:38 shahe26 libvirtd: 06:53:38.393: error : > qemuMonitorTextGetBalloonInfo:555 : operation failed: could not query memory > balloon allocation
This indicates that QEMU shutdown immediately after being launched. > libvirt/qemu/vt_d_debian.log > LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin > HOME=/ QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 > -smp 1,sockets=1,cores=1,threads=1 -name vt_d_debian -uuid > 5ed196df-319b-7be2-28f4-a070e0ca9d77 -nodefaults -chardev > socket,id=monitor,path=/var/lib/libvirt/qemu/vt_d_debian.monitor,server,nowait > -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive > file=/root/debian_dev.img,if=none,id=drive-virtio-disk0,boot=on,format=raw > -device > virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0 > -usb -device usb-mouse,id=input0 -vnc 127.0.0.1:0 -vga cirrus -device > pci-assign,host=02:00.1,id=hostdev0,bus=pci.0,addr=0x4 -device > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > Failed to assign irq for "hostdev0": Operation not permitted > Perhaps you are assigning a device that shares an IRQ with another device? > assigned_dev_pci_read_config: pread failed, ret = 0 errno = 1 This pretty much tells us the problem is with the PCI device you tried to assign to the guest. > dmesg information is in the attached file dmesg. > > <domain type='kvm'> > <name>vt_d_debian</name> > <description>just test using sriov!</description> > <os> > <type>hvm</type> > <boot dev='hd'/> > </os> > > <memory>524288</memory> > <currentMemory>524288</currentMemory> > <on_poweroff>destroy</on_poweroff> > <on_reboot>restart</on_reboot> > <on_crash>restart</on_crash> > > <features><pae/><acpi/><apic/></features> > <clock offset='utc'/> > <devices> > <input type='mouse' bus='usb'/> > <disk type='file' device='disk'> > <source file='/root/debian_dev.img'/> > > <!--> use virtio or /'ide' in ide io </!--> > <target dev='hda' bus='virtio'/> > </disk> > > <emulator>/usr/bin/kvm</emulator> > <graphics type='vnc' port='-1'/> > > <!--> > VT-d or sr-iov assign a pci device just use the > hostdev element! > When managed is "yes" for a PCI device, > it is detached from the host before being passed on > to the guest. > </!--> > <hostdev mode='subsystem' type='pci' managed='yes'> > <source> > <address bus='0x2' slot='0x0' > function='0x1'/> > </source> > </hostdev> You don't mention what version of libvirt / kvm you have ... ? If you have oldish versions, you might need to edit /etc/libvirt/qemu.conf and set 'clear_emulator_capabilities = 0', and user=0, group=0 to make QEMU run as root with full privileges. Newer versions can run fully unprivileged. The other possibility is that this PCI device really *is* sharing an IRQ with another device on your host, in which case you're more or less out of luck & can't assign this 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 :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list