Bug 1100308 - [NetKVM] Race condition in handling device stop
Summary: [NetKVM] Race condition in handling device stop
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: virtio-win
Version: 7.1
Hardware: Unspecified
OS: Windows
unspecified
medium
Target Milestone: rc
: ---
Assignee: Yan Vugenfirer
QA Contact: Virtualization Bugs
URL:
Whiteboard: Fixed_Not_Ship
Depends On: 1123288
Blocks: 1054640
TreeView+ depends on / blocked
 
Reported: 2014-05-22 13:31 UTC by Yan Vugenfirer
Modified: 2015-11-24 08:41 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
NO_DOCS
Clone Of:
Environment:
Last Closed: 2015-11-24 08:41:13 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2015:2513 normal SHIPPED_LIVE virtio-win bug fix and enhancement update 2015-11-24 13:38:38 UTC

Description Yan Vugenfirer 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 Yan Vugenfirer 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


Note You need to log in before you can comment on or make changes to this bug.