Bug 1169673

Summary: [virtio-win][netkvm]qemu quit with "qemu-kvm: Guest moved used index from 0 to 257" when set MaxRxBuffers to 512/1024 in guest
Product: Red Hat Enterprise Linux 7 Reporter: lijin <lijin>
Component: virtio-winAssignee: Yvugenfi <yvugenfi>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: ghammer, hhuang, jasowang, lijin, mdeng, michen, mst, rbalakri, virt-maint, vrozenfe, yvugenfi
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
NO_DOCS
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-24 08:47:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description lijin 2014-12-02 07:20:04 UTC
Description of problem:
the default value of init.MaxRxBuffers is 256,set it to 512 or 1024 in device manager,qemu will quit with "qemu-kvm: Guest moved used index from 0 to 257"

Version-Release number of selected component (if applicable):
qemu-kvm-rhev-2.1.2-12.el7.x86_64
kernel-3.10.0-208.el7.x86_64
virtio-win-1.7.2-2.el6.noarch
seabios-1.7.5-5.el7.x86_64
spice-server-0.12.4-8.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.boot guest with virtio-net-pci:
/usr/libexec/qemu-kvm \
-smp 2 -m 2G -cpu host -M pc \
-drive file=/usr/share/virtio-win/virtio-win.iso,media=cdrom,if=none,cache=none,id=drive1 \
-device ide-drive,drive=drive1,bus=ide.0,unit=0,id=cdrom \
-drive file=win8.1-32.qcow2,if=none,cache=none,format=qcow2,id=drive2 \
-device ide-drive,drive=drive2,bus=ide.1,unit=1,id=disk \
-global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 \
-usb -device usb-tablet \
-spice disable-ticketing,port=5900 -vga qxl -global qxl-vga.revision=3 \
-monitor stdio -qmp tcp:0:4444,server,nowait \
-netdev tap,script=/etc/qemu-ifup,id=hostnet1 -device virtio-net-pci,mq=on,netdev=hostnet1,mac=00:52:54:00:22:88,id=net1 \

2.change init.MaxRxBuffers value to 512 or 1024
device manager--> Red Hat Virtio Ethernet Adapter--->Advanced---> init.MaxRxBuffers --> input value 512 or 1024

Actual results:
qemu quit with "qemu-kvm: Guest moved used index from 0 to 257"

Expected results:
init.MaxRxBuffers can be changed correctly,guest and host works fine,qemu does not quit.

Additional info:
1.win8.1-32/win2012/win2k8-32/win2k8R2 all hit this issue;
2.can reproduce this issue with latest qemu-kvm(qemu-kvm-1.5.3-83.el7.x86_64)
3.can reproduce this issue with rhel7.0 released qemu-kvm(qemu-kvm-1.5.3-60.el7.x86_64)
4.can reproduce this issue on rhel6 host(qemu-kvm-rhev-0.12.1.2-2.444.el6.x86_64)
5.can reproduce this issue with virtio-win-1.6.7-2.el7

Comment 2 Ronen Hod 2014-12-02 17:26:57 UTC
I wonder if the bug is in virtio-win, qemu, or both.

Comment 3 lijin 2014-12-03 02:15:33 UTC
modify init.MaxRxBuffers via netsh command does NOT hit this issue,the value can be changed correctly,and guest works fine.

netsh command:
1.Registration in NetSH:
   1).cmd --> run as administrator
   2).cd path-to-the-netkvm-driver
   3).rundll32 netkvmco.dll,RegisterNetKVMNetShHelper

2.Get the index of virtio-net-pci:---> usually 0
   netsh netkvm show devices

3.Modify NetKVM parameter value
  netsh netkvm setparam 0 rxcapacity 512/1024

Comment 4 lijin 2015-01-26 09:57:19 UTC
test with virtio-win-prewhql-98,win2k12r2 can not reproduce this issue.
 
package info:
virtio-win-prewhql-98
kernel-3.10.0-223.el7.x86_64
qemu-kvm-rhev-2.1.2-20.el7.x86_64
seabios-1.7.5-5.el7.x86_64

Comment 6 lijin 2015-02-03 09:07:40 UTC
I remember win2k12R2 does not hit this issue when do 98-netkvm function test,but this time I reinstall a new guest,still hit this issue.

Anyway,update the result here:
win8.1-32 and win2012R2 guest CAN hit this issue with build 98 and can NOT reproduce this issue with build100
steps:
1.install a new guest image;
2.install build 98 netkvm driver;
3.change init.MaxRxBuffers value to 512/1024
4.update the netkvm driver with buid 100
5.change init.MaxRxBuffers value to 512/1024

after step3,qemu quit with "qemu-kvm: Guest moved used index from 0 to 257";
after step5,guest works fine,no error

Comment 8 Mike Cao 2015-02-03 10:19:00 UTC
Lijin ,I agree w/ Yan that build98 is based on build80 which only fixed the security issue ,we shouldn't verify the bug on build98

Pls retest it on build100

Thanks,
Mike

Comment 9 Mike Cao 2015-02-04 06:14:01 UTC
Moving to verified according to comment#6 .

Comment 12 errata-xmlrpc 2015-11-24 08:47:32 UTC
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/RHBA-2015-2513.html