RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 605361 - 82576 physical function device assignment doesn't work with win7
Summary: 82576 physical function device assignment doesn't work with win7
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.0
Hardware: All
OS: Linux
low
medium
Target Milestone: rc
: ---
Assignee: Alex Williamson
QA Contact: Virtualization Bugs
URL:
Whiteboard:
: 613889 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-06-17 18:01 UTC by Alex Williamson
Modified: 2013-01-09 22:45 UTC (History)
9 users (show)

Fixed In Version: qemu-kvm-0.12.1.2-2.89.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-07-15 02:28:42 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Alex Williamson 2010-06-17 18:01:53 UTC
Description of problem:
An 82576 physical function assigned to a win7 guest doesn't work

Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.77.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Boot a win7 guest with -pcidevice host=bb:dd.f (where bb:dd.f is the _b_us, _d_evice, _f_unction of an 82576 NIC.
2.
3.
  
Actual results:
Device is claimed, but doesn't work.  Doesn't get an IP, unusable.

Expected results:
Device works.

Additional info:
Patch posted upstream - http://www.spinics.net/lists/kvm/msg37014.html

Comment 2 RHEL Program Management 2010-06-17 18:13:23 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 6 juzhang 2010-07-07 06:46:46 UTC
Both tested on qemu-kvm-0.12.1.2-2.90.el6.x86_64(fixed version) and  qemu-kvm-0.12.1.2-2.77.el6.x86_64(Unfixed version),both Devices are claimed and works.get an IP.

Can't reproduce this issue.

The following is steps in details,any mistake please fix me.

Steps
1. Unbind device from host kernel driver (PCI device 03:00.1)
1.1 lspci | grep Ethernet
lspci | grep Ethernet
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5764M Gigabit
Ethernet PCIe (rev 10)
03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection
(rev 01)
03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection
(rev 01)
28:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet
Controller (Copper) (rev 06)
1.2. #lspci -n | grep 03:00.1
03:00.1 0200: 8086:10c9 (rev 01)
1.3. echo "8086 10c9" >/sys/bus/pci/drivers/pci-stub/new_id
1.4. echo 0000:03:00.1 >/sys/bus/pci/devices/0000\:03\:00.1/driver/unbind
1.5. echo 0000:03:00.1 >/sys/bus/pci/drivers/pci-stub/bind
2. Boot guest just attach physical(82576) NIC card.
/usr/libexec/qemu-kvm -m 4G -smp 4 -drive file=/root/zhangjunyi/win7-64-virtio.qcow2,if=none,id=drive-virtio-disk0,boot=on,cache=none,format=qcow2 -device virtio-blk-pci,bus=pci.0,drive=drive-virtio-disk0,id=virtio-disk0  -device virtio-balloon-pci -cpu qemu64,+sse2,+x2apic -monitor stdio -vnc :10 -qmp tcp:0:4445,server,nowait -drive file=/root/zhangjunyi/boot.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,drive=drive-ide0-1-0 -boot c -net none -pcidevice host=03:00.1,id=zjy 
device: zjy: driver="pci-assign" host="03:00.1"
3.(qemu) info pc
pci       pcmcia    
(qemu) info pci
  Bus  0, device   0, function 0:
    Host bridge: PCI device 8086:1237
      id ""
  Bus  0, device   1, function 0:
    ISA bridge: PCI device 8086:7000
      id ""
  Bus  0, device   1, function 1:
    IDE controller: PCI device 8086:7010
      BAR4: I/O at 0xc000 [0xc00f].
      id ""
  Bus  0, device   1, function 3:
    Bridge: PCI device 8086:7113
      IRQ 9.
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 1013:00b8
      BAR0: 32 bit prefetchable memory at 0xf0000000 [0xf1ffffff].
      BAR1: 32 bit memory at 0xf2000000 [0xf2000fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id ""
  Bus  0, device   3, function 0:
    Ethernet controller: PCI device 10ec:8139
      IRQ 10.
      BAR0: I/O at 0xc100 [0xc1ff].
      BAR1: 32 bit memory at 0xf2020000 [0xf20200ff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id "net0"
  Bus  0, device   4, function 0:
    Ethernet controller: PCI device 8086:10c9
      IRQ 0.
      BAR0: 32 bit memory at 0xf2040000 [0xf205ffff].
      BAR2: I/O at 0xffffffffffffffff [0x001e].
      BAR3: 32 bit memory at 0xf2060000 [0xf2063fff].
      BAR6: 32 bit prefetchable memory at 0xffffffffffffffff [0x003ffffe].
      id "zjy"

Results:
In guest,check 82576 NIC card
Device is claimed and works.get an IP.

Comment 7 Alex Williamson 2010-07-07 16:42:35 UTC
What driver version shows up for you in the win7 guest?  My system shows:

Intel(R) Gigabit ET Dual Port Server Adapter
Driver Provider: Intel
Driver Data: 12/4/2009
Driver Version: 11.4.7.0
Digital Signer: Microsoft Windows Hardware Compatibility Publisher

This should be the default driver provided with win7.  If your VM has an updated driver, the problem may not show up.  The driver provided with win2008R2 doesn't have this problem, for instance.

Comment 8 juzhang 2010-07-08 02:44:06 UTC
My system shows:

Intel(R) Gigabit ET Dual Port Server Adapter#2
Driver Provider: Mirsoft
Driver Data: 4/6/2009
Driver Version: 11.0.5.22
Digital Signer: Microsoft Windows

Comment 9 Alex Williamson 2010-07-13 01:30:00 UTC
(In reply to comment #8)
> My system shows:
> 
> Intel(R) Gigabit ET Dual Port Server Adapter#2
> Driver Provider: Mirsoft
> Driver Data: 4/6/2009
> Driver Version: 11.0.5.22
> Digital Signer: Microsoft Windows    

Ok, I found the key to reproducing this.  The driver version is not so important, what is important, is you must use 32bit Windows 7 to reproduce this issue.  64bit Windows 7 makes use of MSI-X interrupts for this device which will work fine with or without this fix.  32bit Windows 7 uses INTx interrupts for the same device and gratuitously disables MSI-X, causing the problem.  Please use 32bit for verification.

Comment 10 Alex Williamson 2010-07-13 17:04:30 UTC
*** Bug 613889 has been marked as a duplicate of this bug. ***

Comment 11 juzhang 2010-07-15 02:26:47 UTC
> Ok, I found the key to reproducing this.  The driver version is not so
> important, what is important, is you must use 32bit Windows 7 to reproduce this
> issue.  64bit Windows 7 makes use of MSI-X interrupts for this device which
> will work fine with or without this fix.  32bit Windows 7 uses INTx interrupts
> for the same device and gratuitously disables MSI-X, causing the problem. 
> Please use 32bit for verification.    
Thanks Alex,you are right. using same steps with comment6. using win7 32 instead of win7 64. I can reproduce it on qemu-kvm-0.12.1.2-2.77.el6.x86_64.and can verified on qemu-kvm-0.12.1.2-2.91.el6.x86_64.

Comment 12 juzhang 2010-07-15 02:28:42 UTC
according to comment11 and commentcomment6 close this issue.

Comment 13 John Ronciak 2010-08-03 22:06:33 UTC
Is this going to be documented to user somehow?  Does it need to be in the release notes?


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