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
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.
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.
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.
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
(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.
*** Bug 613889 has been marked as a duplicate of this bug. ***
> 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.
according to comment11 and commentcomment6 close this issue.
Is this going to be documented to user somehow? Does it need to be in the release notes?