Bug 1100308

Summary: [NetKVM] Race condition in handling device stop
Product: Red Hat Enterprise Linux 7 Reporter: Yvugenfi <yvugenfi>
Component: virtio-winAssignee: Yvugenfi <yvugenfi>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.1CC: juzhang, knoel, lijin, mdeng, michen, rbalakri, virt-maint, vrozenfe, yvugenfi
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Windows   
Whiteboard: Fixed_Not_Ship
Fixed In Version: Doc Type: Bug Fix
Doc Text:
NO_DOCS
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-24 08:41:13 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:
Bug Depends On: 1123288    
Bug Blocks: 1054640    

Description Yvugenfi@redhat.com 2014-05-22 13:31:46 UTC
Description of problem:
Code review as part of work on BZ#1054640 uncovered race condition in stop sequence when the stop function is waiting for existing DPCs to complete.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Mike Cao 2014-07-21 09:49:04 UTC
Hi,Yan
Can you give me some suggestions how to verify this issue ?

Thanks,
Mike

Comment 2 Yvugenfi@redhat.com 2014-07-21 11:37:19 UTC
Hi Mike,

Here are the steps.

1. Run extensive traffic through the NIC.

2. Disable the device.


For first bullet I also suggest to make two cases - incoming traffic and outgoing traffic.

Best regards,
Yan.

Comment 3 Mike Cao 2014-07-25 09:07:45 UTC
Retest this issue on virtio-win-prewhql-84 and virito-win-prewhql-87
Can not reproduce this issue 

Steps:
Scenario 1:
1.Start VM w/ virtio-nic-pci
/usr/libexec/qemu-kvm -name 084NICBLUE32C06 -enable-kvm -m 6G -smp 4 -uuid
e6dca2b3-1ac9-4abd-a0b0-6ba146b555d8 -nodefconfig -nodefaults -chardev
socket,id=charmonitor,path=/tmp/084NICBLUE32C06,server,nowait -mon
chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew
-boot order=cd,menu=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
-drive
file=084NICBLUE32C06,if=none,id=drive-ide0-0-0,format=raw,serial=mike_cao,cache=none
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive
file=en_windows_8_1_enterprise_x86_dvd_2972289.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw
-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive
file=084NICBLUE32C06.vfd,if=none,id=drive-fdc0-0-0,format=raw,cache=none
-global isa-fdc.driveA=drive-fdc0-0-0 -chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=isa_serial0 -device usb-tablet,id=input0 -vnc
0.0.0.0:0 -vga cirrus -netdev
tap,script=/etc/qemu-ifup-private,downscript=no,id=hostnet1,vhost=on -device
virtio-net-pci,netdev=hostnet1,id=net1,mac=00:52:1c:66:1c6,bus=pci.0,mq=on
2.in the guest #netserver
3.on the host start 100 instance of netperf 
for ((i=1;i<=100;i++)); do netperf -D 1 -H 10.66.8.223 -l 100 -C -c -t
TCP_STREAM -- -m 65535 & done
4.during step 3 (more or less 30 secs) ,disable virito-nic driver in the device
manager 
5. Wait for 5-10 mins , restart guest 
#shutdown -t 0 -r -f 

Actual results:
on virtio-win-prewhql-84 hit bug 1123288
on virtio-win-prewhql-87 hit bug 1123288

--------------------------------------------------------
Scenario 2:
1.Start VM w/ virtio-nic-pci
/usr/libexec/qemu-kvm -name 084NICBLUE32C06 -enable-kvm -m 6G -smp 4 -uuid
e6dca2b3-1ac9-4abd-a0b0-6ba146b555d8 -nodefconfig -nodefaults -chardev
socket,id=charmonitor,path=/tmp/084NICBLUE32C06,server,nowait -mon
chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew
-boot order=cd,menu=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
-drive
file=084NICBLUE32C06,if=none,id=drive-ide0-0-0,format=raw,serial=mike_cao,cache=none
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive
file=en_windows_8_1_enterprise_x86_dvd_2972289.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw
-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive
file=084NICBLUE32C06.vfd,if=none,id=drive-fdc0-0-0,format=raw,cache=none
-global isa-fdc.driveA=drive-fdc0-0-0 -chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=isa_serial0 -device usb-tablet,id=input0 -vnc
0.0.0.0:0 -vga cirrus -netdev
tap,script=/etc/qemu-ifup-private,downscript=no,id=hostnet1,vhost=on -device
virtio-net-pci,netdev=hostnet1,id=net1,mac=00:52:1c:66:1c6,bus=pci.0,mq=on
2.on the host #netserver
3.in the guest start 100 instance of netperf 
for ((i=1;i<=100;i++)); do netperf -D 1 -H 10.66.8.223 -l 100 -C -c -t
TCP_STREAM -- -m 65535 & done
4.during step 3 (more or less 30 secs) ,disable virito-nic driver in the device
manager 
5. Wait for 5-10 mins , restart guest 
#shutdown -t 0 -r -f 

Actual results:
on virtio-win-prewhql-84 ,the device can be disabled and guest can be rebooted 
on virtio-win-prewhql-87 ,the device can be disabled and guest can be rebooted 


Yan ,
Can you help to review the steps above ?
Any idea how to reproduce this issue ? or the steps above can move this bug to verified ?

Thanks,
Mike

Comment 5 Mike Cao 2014-08-20 07:07:38 UTC
Based on comment #4 reassign this issue

Comment 8 lijin 2015-04-03 07:00:23 UTC
retest this issue with build 102,steps same as comment#3,virtio-net can be disabled correctly and guest can reboot normally,no bsod.

So this issue has been fixed already.

test package info:
kernel-3.10.0-223.el7.x86_64
qemu-kvm-rhev-2.1.2-17.el7.x86_64
seabios-1.7.5-8.el7.x86_64
virtio-win-prewhql-102

Comment 11 lijin 2015-07-17 07:03:05 UTC
change status to verified according to comment#8

Comment 13 errata-xmlrpc 2015-11-24 08:41:13 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