Bug 1184430

Summary: enable event index feature in Windows virtio-blk driver
Product: Red Hat Enterprise Linux 7 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: 7.2CC: juzhang, lijin, michen, rbalakri, virt-maint, vrozenfe, wyu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: Previous version of Windows virtio-blk driver (viostor.sys) didn't activate virtio queue event indexing feature. Consequence: some potential performance improvement was missing. Fix: Automatically enable event index feature if it is enabled by host. Result: Now virtio-blk device can fully utilize virtio queue event index feature.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-24 08:48:59 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 2015-01-21 11:23:23 UTC
Description of problem:
Windows virtio-blk (viostor) driver always keeps event index features disbled

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Vadim Rozenfeld 2015-03-03 02:50:18 UTC
Should be fixed in build 101, available at http://download.devel.redhat.com/brewroot/packages/virtio-win-prewhql/0.1/101/win/virtio-win-prewhql-0.1.zip

Comment 5 lijin 2015-07-17 08:16:39 UTC
wyu,please verify this bug with latest build

Comment 8 Yu Wang 2015-07-20 02:54:29 UTC
Verified this issue on virtio-win-prewhql-105 version

Steps:

1 /usr/libexec/qemu-kvm -name win8-32 -enable-kvm -m 2G -smp 2 -uuid ae361e8d-28a4-4e70-8783-bda0d450ce35 -nodefconfig --nodefaults -chardev socket,id=charmonitor,path=/tmp/win8-32,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -boot order=cd,menu=on -drive file=win8-32.raw,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_enterprise_x86_dvd_917587.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 -netdev tap,script=/etc/qemu-ifup,downscript=no,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=00:52:5a:30:2e:58,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=isa_serial0 -vnc 0.0.0.0:7 -vga cirrus -monitor stdio -qmp tcp:0:4447,server,nowait -drive file=test.raw,if=none,id=drive-virtio-disk0,format=raw,serial=mike_cao,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0

2 (qemu)#info qtree

Result:

It can be checked with "info qtree" command with "envent_indx enabled":
 dev: virtio-blk-pci, id "virtio-disk0"
   class = 0 (0x0)
   ...
   ...
   event_idx = true

Based on above ,this issue has been fixed on virtio-win-prewhql-105 version

Fix version:
virtio-win-prewhql-105
kernel-3.10.0-296.el7.x86_64
qemu-kvm-rhev-2.3.0-12.el7.x86_64
seabios-1.7.5-9.el7.x86_64

Comment 9 Yu Wang 2015-07-21 02:31:39 UTC
Hi Vadim,

  We have tried on virtio-win-prewhql-100 version, but we cannot reproduce this bug. Steps refer to comment#8.
  
  It can still be checked with "info qtree" command with "event_idx enabled":

 dev: virtio-blk-pci, id "virtio-disk0"
   class = 0 (0x0)
   ...
   ...
   event_idx = true

  I wonder if it is right for our verify steps on this bug. 
  What is the correct detailed steps to check event_idx? or maybe it is related to kernel and qemu version not driver?


Thanks
wyu

Comment 10 Vadim Rozenfeld 2015-07-21 03:31:27 UTC
(In reply to wangyu from comment #9)
> Hi Vadim,
> 
>   We have tried on virtio-win-prewhql-100 version, but we cannot reproduce
> this bug. Steps refer to comment#8.
>   
>   It can still be checked with "info qtree" command with "event_idx enabled":
> 
>  dev: virtio-blk-pci, id "virtio-disk0"
>    class = 0 (0x0)
>    ...
>    ...
>    event_idx = true
> 
>   I wonder if it is right for our verify steps on this bug. 
>   What is the correct detailed steps to check event_idx? or maybe it is
> related to kernel and qemu version not driver?
> 
> 
> Thanks
> wyu

Hi Wyu,

I probably didn't understand your question correctly. Sorry for that.
As I said before, event index enabled by default, and it can be checked with "info qtree' command. But it is relevant to qemu (host) side only. Guest/virtio-blk driver can ignore this feature. The previous versions of Windows virtio-blk driver didn't utilize this feature even though it was enable from the host side. The new version uses it. Unfortunately, virtio-blk driver in Windows doesn't provide any explicit indication regarding to activation event index feature. (Unlike vioscsi, where such kind of information can be retrieved with WMI). The only way to know that it works - just to check that the driver doesn't crash during normal read or write operations.

Best regards,
Vadim.

Comment 11 Yu Wang 2015-08-18 09:55:48 UTC
Verified this issue on virtio-win-prewhql-106 version

Steps:
1. Start windows guest
2. run normal read or write operations according virtio-win viostor function test

Actual Results:

The driver doesn't crash during normal read or write operations on windows guest

fix version, virtio-win-prewhql-106

Base on above,the blk event index feature can be used on windows guest.


virtio-win-prewhql-106
qemu-kvm-rhev-2.3.0-16.el7.x86_64
kernel-3.10.0-305.el7.x86_64
seabios-1.7.5-11.el7.x86_64

Comment 12 lijin 2015-09-02 07:32:06 UTC
change status to verified according to comment#10 and comment#11

Comment 14 errata-xmlrpc 2015-11-24 08:48:59 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