Bug 1371834

Summary: qlcnic : cannot install VF driver in windows 2008 R2 guest
Product: Red Hat Enterprise Linux 7 Reporter: xixizhang <xixzhang>
Component: qemu-kvm-rhevAssignee: Alex Williamson <alex.williamson>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: chayang, juzhang, knoel, virt-maint, xixzhang, yfu
Target Milestone: rcFlags: alex.williamson: needinfo? (xixzhang)
Target Release: ---   
Hardware: x86_64   
OS: Windows   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-23 21:23:46 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:

Description xixizhang 2016-08-31 08:33:23 UTC
Description of problem:
bring up VFs with parent Qlogic nic, unbind and assign a VF to a guest. In the guest, we cannot install the VF driver, while we can install the PF driver.

Version-Release number of selected component (if applicable):
host:
     kernel:kernel-3.10.0-495.el7.x86_64
     qemu-kvm:qemu-kvm-rhev-2.6.0-22.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.bring up VFs with parent Qlogic nic:
# echo 8 > /sys/bus/pci/devices/0000\:07\:00.0/sriov_numvfs
2.unbind a VF and assign it to vfio-pci:
# echo 0000:07:02.0 > /sys/bus/pci/devices/0000\:07\:02.0/driver/unbind
# echo 1077 8430 > /sys/bus/pci/drivers/vfio-pci/new_id
# echo 1077 8430 > /sys/bus/pci/drivers/vfio-pci/remove_id
3.boot guest with assigned VF
-device vfio-pci,host=07:02.0,id=vf0 \
4.download driver(qlxge_ws2008r2_5_3_32_1130_whql) from qlogic, and install this driver for VF in guest.
Driver link (Ethernet Networking Driver for Windows 2008 R2 (x64)):
http://driverdownloads.qlogic.com/QLogicDriverDownloads_UI/SearchByProduct.aspx?ProductCategory=322&Product=1186&Os=190

Actual results:

In qemu,
(qemu) info pci
Bus  0, device   4, function 0:
    Ethernet controller: PCI device 1077:8430
      BAR0: 64 bit prefetchable memory at 0xfe800000 [0xfe803fff].
      BAR2: 64 bit prefetchable memory at 0xfe804000 [0xfe805fff].
      BAR4: 64 bit prefetchable memory at 0xfe806000 [0xfe806fff].
      id "vf0"

In guest,there is an Ethernet Controller (Location: PCI Slot 4) in Device Manager. When installing the driver, it shows:
Windows was unable to install your Ethernet Controller
Windows could not find driver software for your device.
If you know the manufacture of your device, you can visit its website and check the support section for driver software.

Expected results:
the driver can be installed successfully.

Additional info:
We have tried the previous version of the driver, e.g., qlxge_ws2008r2_5_3_12_0925_whql, qlxge_ws2008r2_5_3_25_0425_whql, neither of them can be installed.
We can install this driver for PF successfully.

# ethtool -i p5p1  (p5p1 is the interface of qlogic nic)
driver: qlcnic
version: 5.3.65
firmware-version: 5.8.18
expansion-rom-version: 
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Comment 2 Alex Williamson 2016-08-31 12:54:21 UTC
http://filedownloads.qlogic.com/files/Driver/91701/README_5_3_32_1130.txt

 5.2 Using SRIOV

  5.2.1 Hardware requirement
    CPU chipset must support SRIOV. e.g. Intel Westmere system hardware 
    support in the form of an IOMMU device.
   
  5.2.2 Software requirement
    * Minimum supported OS is Windows Server 2012.
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Please retest with a guest version supported by the driver.

Comment 3 Yanan Fu 2016-09-01 04:48:56 UTC
(In reply to Alex Williamson from comment #2)
> http://filedownloads.qlogic.com/files/Driver/91701/README_5_3_32_1130.txt
> 
>  5.2 Using SRIOV
> 
>   5.2.1 Hardware requirement
>     CPU chipset must support SRIOV. e.g. Intel Westmere system hardware 
>     support in the form of an IOMMU device.
>    
>   5.2.2 Software requirement
>     * Minimum supported OS is Windows Server 2012.
>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> Please retest with a guest version supported by the driver.

So sorry for this mistake, alex.

We downloaded the driver from qlogic with the filter:
Converged Network Adapter + QLE8362 + Windows Server 2008 R2 (64-bit)
Then choose "Ethernet Networking Driver for Windows 2008 R2 (x64)", so we think it is available for win2008 r2 guest.

We have missed this import info in README and cause this issue.
In the future test, we will pay attention to it.

Result will be updated when retest is done,thanks a lot.

Comment 4 Alex Williamson 2016-09-23 21:23:46 UTC
Closing due driver stating that the guest OS under test is not supported.  Open a new bug if the problem occurs on a version of the guest the driver claims to support.