Description of problem:
The patch that enabled PUBLISH_USED reporting for virtio-net inadvertently enabled it for all virtio devices.
At the time, only virtio-net was supposed to enable this feature because the performance impact on the other virtio drivers wasn't measured. Tests now show reduced vmexits with virtio-blk. There's no perf. regression for virtio-console either.
Just remove the virtio-net specific enabling of the feature since that code is not used anyway.
The previous work was done in bug 593158
Host-side enabling of the PUBLISH_USED feature is done as part of bug 602417
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release. Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release. This request is not yet committed for
Patch submitted to the list, moving to POST.
Patch(es) available on kernel-2.6.32-42.el6
Compared Guest's I/O and virtio-console perf between kernel-2.6.32-37.el6.x86_64 and kernel-2.6.32-59.el6.x86_64 as following:
CLI: /usr/libexec/qemu-kvm -m 4G -smp 2 -cpu qemu64,+x2apic -usbdevice tablet -drive file=/home/rhel6.img,if=none,id=drive-virtio0,boot=on,werror=stop,rerror=stop,cache=none,format=raw -device virtio-blk-pci,drive=drive-virtio0,id=virtio-blk-pci0 -netdev tap,id=hostnet0,script=/etc/qemu-ifup,vhost=on,ifname=virtio_nic_2 -device virtio-net-pci,netdev=hostnet0,mac=00:12:43:3F:40:aa,bus=pci.0,id=virtio1,addr=0x5 -uuid a234127c-8765-1234-95da-1dd0a8891cc4 -name 37-145 -qmp tcp:0:4446,server,nowait -device virtio-balloon-pci,id=ba1 -monitor stdio -vnc :1 -boot c -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=4,bus=pci.0 -chardev socket,id=channel0,path=/var/lib/libvirt/qemu/rhel6.channel0,server,nowait -device virtserialport,chardev=channel0,name=org.linux-kvm.port.0,bus=virtio-serial0.0,id=port0
Host:#dd if=/dev/sda bs=1M count=2024 | nc -U /var/lib/libvirt/qemu/rhel6.channel0
Guest:#time cat /dev/vport0p1 > 2G
real : 0m27.7335s real : 0m22.200s
user : 0m0.275s user : 0m0.202s
sys : 0m16.3185s sys : 0m16.880
Guest:#dd if=2G of=/dev/vport0p1
Host:#time nc -U /var/lib/libvirt/qemu/rhel6.channel0 > 2G
real : 1m21.117s real : 1m1.672s
user : 0m0.529s user : 0m0.880s
sys : 0m32.029s sys : 0m28.513s
2. virtio block
#iozone -az -n 4g -g 4g -r 64k -i 0 -i 1 -b test
"Writer report" 136739 131388
"Re-writer report" 135764 130315
"Reader report" 122780 122771
"Re-Reader report" 124329 135788
Above all ,after remove net-specific PUBLISH_USED,the virtio console and block I/O can use successfully, and the performance of block I/O and virtio console were not getting worse.
Change status to verified.
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.