Red Hat Bugzilla – Bug 1128751
<driver/> isn't always formated as it should be
Last modified: 2015-03-05 02:42:14 EST
Created attachment 925745 [details] vdsm.log Description of problem: <driver queues='X'/> is accepted but not formatted back Vdsm reports XML to libvirt, but just doesn't format it back in the XML ps -ww `pgrep qemu-kvm` - fds=25:26:27:28:29:30:31 (7 queues) Libvirt requires driver name or txmode Version-Release number of selected component (if applicable): libvirt-1.1.1-29.el7_0.1.x86_64 How reproducible: Steps to Reproduce: 1. Config value for queue on vNIC profile 2. Check vdsm reports XML to libvirt 3. Run ps -ww `pgrep qemu-kvm` Actual results: <driver queues='X'/> is accepted but not formatted back Expected results: <driver queues='X'/> should be formatted back in the XML Additional info: https://bugzilla.redhat.com/show_bug.cgi?id=821493
Patch proposed upstream: https://www.redhat.com/archives/libvir-list/2014-August/msg00462.html
I've just pushed the patch upstream: commit 3085702b5461d3b0b057c37cf5fbff432244f529 Author: Michal Privoznik <mprivozn@redhat.com> AuthorDate: Mon Aug 11 14:51:49 2014 +0200 Commit: Michal Privoznik <mprivozn@redhat.com> CommitDate: Tue Aug 12 09:29:10 2014 +0200 conf: Format interface's driver more frequently https://bugzilla.redhat.com/show_bug.cgi?id=1128751 There's this <driver/> element under <interface/> which can have several attributes. However, the driver element is currently formated only if the driver's name or txmode has been specified. This makes only a little sense as we parse even partial <driver/>, for instance: <interface type='user'> <mac address='52:54:00:e5:48:58'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> </interface> But such XML would never get formatted back. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Moving to POST: http://post-office.corp.redhat.com/archives/rhvirt-patches/2014-August/msg00274.html
Verified on - 3.5.0-0.13.beta.el6ev with libvirt-1.2.8-4.el7.x86_64
*** Bug 1176148 has been marked as a duplicate of this bug. ***
Can this be cloned to 7.0.z, as a RHEV-3.5 feature depends on it?
(In reply to Dan Kenigsberg from comment #7) > Can this be cloned to 7.0.z, as a RHEV-3.5 feature depends on it? Sure it can. Although we need PM help here to clone it.
Verify it as follows: Scene 1: 1.[root@localhost libvirt]# rpm -q libvirt libvirt-1.2.8-15.el7.x86_64 2.[root@localhost libvirt]# virsh list --all Id Name State ---------------------------------------------------- - aa shut off 3.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> 4.add" <driver ioeventfd='on' event_idx='on' queues='5'/>" to xml [root@localhost libvirt]# virsh edit aa Domain aa XML configuration edited. 5.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> 6.[root@localhost libvirt]# virsh start aa;virsh dumpxml aa |grep interface -A6 Domain aa started <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default' bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> <alias name='net0'/> -- </interface> [root@localhost libvirt]# ps aux |grep qemu qemu 7267 104 0.5 1914740 46172 ? Sl 14:34 0:07 /usr/libexec/qemu-kvm -name aa -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 23d19d5a-ee01-4a2b-bec9-948fca512c00 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/aa.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on -device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x3 -device nec-usb-xhci,id=usb,bus=pci.0,addr=0x6 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/var/lib/libvirt/images/rhel7.0.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=none -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,fds=24:25:26:27:28,id=hostnet0,vhost=on,vhostfds=29:30:31:32:33 -device virtio-net-pci,ioeventfd=on,event_idx=on,mq=on,vectors=12,netdev=hostnet0,id=net0,mac=52:54:00:c9:7d:a5,bus=pci.0,addr=0x5 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=8,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x7 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x9 -msg timestamp=on root 7288 0.0 0.0 112640 964 pts/0 S+ 14:34 0:00 grep --color=auto qemu 7.[root@localhost libvirt]# virsh destroy aa Domain aa destroyed 8.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> Scene 2: 1.add <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/> to xml [root@localhost libvirt]# virsh edit aa Domain aa XML configuration edited. 2.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> 3. [root@localhost libvirt]# virsh start aa Domain aa started [root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default' bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/> <alias name='net0'/> bug is fixed.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2015-0323.html