Bug 1159754

Summary: [virtio-win][netkvm]Nic device doesn't work when guest is running in IRQ mode
Product: Red Hat Enterprise Linux 7 Reporter: Xiaomei Gao <xigao>
Component: virtio-winAssignee: Yvugenfi <yvugenfi>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: high    
Version: 7.1CC: juzhang, knoel, lijin, michen, rbalakri, virt-maint, vrozenfe, wquan, yvugenfi
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: Fixed_Not_Ship
Fixed In Version: virtio-win-prewhql-0.1-99 Doc Type: Bug Fix
Doc Text:
NO_DOCS
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-24 08:46:19 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:
Attachments:
Description Flags
nic driver error info
none
guest fail to boot none

Description Xiaomei Gao 2014-11-03 09:18:44 UTC
Created attachment 953030 [details]
nic driver error info

Description of problem:
Nic driver doesn't work when guest is in IRQ mode on virtio-win-prewhql-0.1-93. Downgrade virtio-win-prewhql-0.1-90, network works happily. It is virtio-win-prewhql-0.1-91 that introduces the issue.

Version-Release number of selected component (if applicable):
kernel-3.10.0-143.el7.x86_64
virtio-win-prewhql-0.1-93
qemu-kvm-rhev-2.1.2-3.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Boot guest with vectors=0
/usr/libexec/qemu-kvm  \
    -name 'virt-tests-vm1' \
    -nodefaults \
    -drive file='/home/kvm_autotest_root/images/win2012r2-64-virtio_blk.raw',if=none,id=drive-virtio-disk1,media=disk,cache=none,snapshot=off,format=raw,aio=threads \
    -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,bootindex=0 \
    -device virtio-net-pci,netdev=idIDrXDG,mac='9a:37:38:38:38:9e',bus=pci.0,addr=0x6,id='idP9hzx9',vectors=0 \
    -netdev tap,id=idIDrXDG \
    -m 4096 \
    -smp 2,cores=1,threads=1,sockets=2 \
    -cpu 'Westmere',+kvm_pv_eoi,+kvm_pv_unhalt,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time \
    -M pc \
    -enable-kvm \
    -monitor stdio

2. Check network status in guest.

Actual results:
Network driver error is as follows:
This device can not start.(Code 10)
An invalid parameter was passed to a service or function.

Please check the attachment.

# ipconfig
Windows IP Configuration.

Expected results:
Network driver works happily.

Additional info:

Comment 2 Xiaomei Gao 2014-11-03 09:55:32 UTC
If using regedit.exe to disable network MSI support, the guest will not boot successfully. Downgrade virtio-win-prewhql-0.1-90, it still works well.

Steps:
1. Boot guest.
Boot guest with vectors=0
/usr/libexec/qemu-kvm  \
    -name 'virt-tests-vm1' \
    -nodefaults \
    -drive file='/home/kvm_autotest_root/images/win2012r2-64-virtio_blk.raw',if=none,id=drive-virtio-disk1,media=disk,cache=none,snapshot=off,format=raw,aio=threads \
    -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,bootindex=0 \
    -device virtio-net-pci,netdev=idIDrXDG,mac='9a:37:38:38:38:9e',bus=pci.0,addr=0x6,id='idP9hzx9'\
    -netdev tap,id=idIDrXDG \
    -m 4096 \
    -smp 2,cores=1,threads=1,sockets=2 \
    -cpu 'Westmere',+kvm_pv_eoi,+kvm_pv_unhalt,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time \
    -M pc \
    -enable-kvm \
    -monitor stdio

2. Look under HKLM\SYSTEM\CurrentControlSet\Enum\PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&13c0b0c5&0&30 for a key called MessageSignaledInterruptProperties and change MSISupported value to 0 (zero).

3. Restart the guest.

Results:
Guest can't boot successfully and please check the attachment.

Vadim, could you help to check if they are the same issue with comment 0?

Comment 3 Xiaomei Gao 2014-11-03 09:58:32 UTC
Created attachment 953043 [details]
guest fail to boot

Comment 5 Vadim Rozenfeld 2014-11-03 10:31:11 UTC
(In reply to Xiaomei Gao from comment #2)
> If using regedit.exe to disable network MSI support, the guest will not boot
> successfully. Downgrade virtio-win-prewhql-0.1-90, it still works well.
> 
> Steps:
> 1. Boot guest.
> Boot guest with vectors=0
> /usr/libexec/qemu-kvm  \
>     -name 'virt-tests-vm1' \
>     -nodefaults \
>     -drive
> file='/home/kvm_autotest_root/images/win2012r2-64-virtio_blk.raw',if=none,
> id=drive-virtio-disk1,media=disk,cache=none,snapshot=off,format=raw,
> aio=threads \
>     -device
> virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,bootindex=0 \
>     -device
> virtio-net-pci,netdev=idIDrXDG,mac='9a:37:38:38:38:9e',bus=pci.0,addr=0x6,
> id='idP9hzx9'\
>     -netdev tap,id=idIDrXDG \
>     -m 4096 \
>     -smp 2,cores=1,threads=1,sockets=2 \
>     -cpu
> 'Westmere',+kvm_pv_eoi,+kvm_pv_unhalt,hv_spinlocks=0x1fff,hv_relaxed,
> hv_vapic,hv_time \
>     -M pc \
>     -enable-kvm \
>     -monitor stdio
> 
> 2. Look under
> HKLM\SYSTEM\CurrentControlSet\Enum\PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_
> 00\3&13c0b0c5&0&30 for a key called MessageSignaledInterruptProperties and
> change MSISupported value to 0 (zero).
> 
> 3. Restart the guest.
> 
> Results:
> Guest can't boot successfully and please check the attachment.
> 
> Vadim, could you help to check if they are the same issue with comment 0?

Adding Yan, to take a look at the issue.
Thanks,
Vadim.

Comment 9 lijin 2015-03-31 09:48:49 UTC
Reproduced this issue on build 93
Verified this issue on build 102

Steps:
1.boot guest with vectors=0
2.check network status in guest
3.shutdown guest and boot again without vectors=0
4.set MSISupported value to zero in Register
5.reboot guest
    
Actual Results:
on build 93,network is not valid in step 2 and guest bsod after step5
on build 102,network works normally after step2 and step5

Based on above ,this issue has been fixed already.

Comment 12 lijin 2015-06-17 08:46:10 UTC
change status to verified according to comment#9

Comment 15 errata-xmlrpc 2015-11-24 08:46:19 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