[libvirt] the guest killed itself
Daniel P. Berrange
berrange at redhat.com
Thu May 5 09:25:56 UTC 2011
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 at 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 :|
More information about the libvir-list
mailing list