Bug 810694

Summary: viostor fails with DRIVER_IRQL_NOT_LESS_OR_EQUAL BOSD under heavy random write load
Product: Red Hat Enterprise Linux 6 Reporter: Vadim Rozenfeld <vrozenfe>
Component: virtio-winAssignee: Vadim Rozenfeld <vrozenfe>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.3CC: acathrow, bcao, bsarathy, chorn, dyasny, juzhang, michen, tcameron, xigao
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Windows   
Whiteboard:
Fixed In Version: build 26 Doc Type: Bug Fix
Doc Text:
This bug was reported upstream by several different people. Cause: it was a race condition in viostor driver due to incorrect flush requests handling. Consequence: Under heavy load, usually (but not always) when using cache=writheback option, flush handler was executed asynchronously without proper synchronisation with the rest of request processing logic. Fix: Synchronize execution of the flush request handler with ISR. Result: Fixed for all OSes including WinXp
Story Points: ---
Clone Of:
: 825986 (view as bug list) Environment:
Last Closed: 2012-06-20 11:58:51 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 Vadim Rozenfeld 2012-04-08 11:12:12 UTC
Description of problem:


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


How reproducible:


Steps to Reproduce:
1.Run qemu with the following command line qemu-kvm -m MEMORY -smp SMP -cpu host -nodefaults -vga cirrus -vnc :1  -drive if=none,id=block.0,format=raw, cache=writeback,file=drive.img -device virtio-blk-pci,bootindex=1,
drive=block.0 -monitor stdio
2.stressed the disk by running Crystal Disk mark (a free IO measuring tool). 
3.When it got to the 4 KB random write tests - it would consistently blue screen.

  
Actual results:


Expected results:


Additional info:

Comment 1 Vadim Rozenfeld 2012-04-08 11:15:26 UTC
this bug was reported upstream :
https://github.com/YanVugenfirer/kvm-guest-drivers-windows/issues/2#issuecomment-5009116
http://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04550.html

However it's easily reproducible on rhel6.3 as well

Comment 6 Mike Cao 2012-04-10 06:14:39 UTC
Reproduced this issue on virtio-win-prewhql-22
Verified this issue on virtio-win-prewhql-25

Steps:
1.start guest w/ cache=writeback
2.in the guest ,running Crystal Disk mark .choose "9  2000MB  C:\ “

Actual Results
On virtio-win-prewhql-22 ,guest BSOD ocurrs
On virtio-win-prewhql-25 ,gust works fine

Based on above ,this issue has been fixed ald .

Comment 9 Vadim Rozenfeld 2012-05-03 08:57:15 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
This bug was reported upstream by several different people.

Cause: it was a race condition in viostor driver due to incorrect flush requests handling.
Consequence: Under heavy load, usually (but not always) when using cache=writheback option, flush handler was executed asynchronously without proper synchronisation with the rest of request processing logic.
Fix: Synchronize execution of the flush request handler with ISR.
Result: Fixed for all OSes including WinXp

Comment 10 Thomas Cameron 2012-06-04 06:06:16 UTC
I could not find the build 25 package, so I am using build 26. Is that OK?

Comment 12 errata-xmlrpc 2012-06-20 11:58:51 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.

http://rhn.redhat.com/errata/RHBA-2012-0751.html