Use virtio indirect buffers feature in guest driver.
Enhanced virtio capability to transfer fragmented network traffic.
Result (if any):
Description of problem:
RSC (GRO) feature in Windows guest driver started to use indirect buffers for RX as well.
Driver should verify host support for indirect buffers before using this feature.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
Yan, Could you provide way to reproduce/verify it ?
What you need is to run NetKVM driver on old QEMU without "indirect buffers" feature support. Before this fix driver will not work or will even crash, at least there will be no RX packets. With this fix everything should work smoothly.
Yan, please help us with exact QEMU version number indirect buffers were introduced at.
failed to reproduce it on virtio-win-prwehql-49
1.Start VM w/ virtio-net-pci with indirect_desc=off
CLI: /usr/libexec/qemu-kvm -m 2G -smp 2 -usb -device usb-tablet,id=tablet0 -drive file=/home/win7-64-virtio.qcow2,if=none,id=drive-virtio0-0-0,format=qcow2,werror=stop,rerror=stop,cache=none -device ide-drive,drive=drive-virtio0-0-0,id=virti0-0-0,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device virtio-net-pci,indirect_desc=off,netdev=hostnet0,id=net0,mac=00:12:10:94:a3:f8 -uuid 8677bf9b-3cf6-47a1-b3e9-94213b801c87 -monitor stdio -vnc :7 -device virtio-serial-pci,id=virtio-serial0,max_ports=16 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm1,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm2,bus=virtio-serial0.0,id=port2 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0
2.Copy File From Host to Guest
Guest Could receive data successfully
Dima ,Could you view my steps above ?Could you give me some other suggestions ?
According to Amos
-device virtio-net-pci,indirect_desc=off is to disable indirect buffers
The problem is the same as in BZ957507 - this command line option doesn't disable indirect buffers feature but hides it. Since old driver doesn't verify feature presence it uses it successfully.
QE run netkvm functional test ,did not find any issue on disable\enable load\unload
Based on above ,this issue has been fixed ald .Move status to VERIFIED.
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.