VT-D NIC doesn't work in windows guest

Bug #877155 reported by Yongjie Ren
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

[This should be a kvm kernel bug. I met this issue with quemu and kvm for virtualization. For https://bugzilla.kernel.org is not available yet, I just file this bug here just for tracking. ]
Environment:
------------
Host OS (ia32/ia32e/IA64):All
Guest OS (ia32/ia32e/IA64):ia32e
Guest OS Type (Linux/Windows):Linux
kvm.git Commit:211978fb6c666f824ae8221baeaeeee7ee28efc1
qemu.git Commit:edbb7c0de56692868e6126c7ff7e8bf917f8d0e7
Host Kernel Version:3.1.0-rc9+
Hardware: Westmere-EP && SandyBridge platform

Bug detailed description:
--------------------------
Using qemu and kvm upstream, VT-D NIC and SR-IOV VF don't work in Windows guest. I tried Windows XP, Vista, Win7, Win2k8 as a guest. And I used 82572 NIC and 82576 Virtual Function to assign to windows guest, and got the same result.

Reproduce steps:
----------------
1.start a Windows guest with a NIC assigned:
qemu-system-x86_64 -m 1024 -smp 2 -device pci-assign,host=08:00.0 -net none -hda Windows.img
2.check network in the Windows guest. (You'll find the assigned NIC doesn't work in guest.)

Current result:
----------------
NIC doesn't work in Windows guest

Expected result:
----------------
NIC will work.

Revision history for this message
Alex Williamson (alex-l-williamson) wrote :

There's not enough info here to even begin to debug this. Intel doesn't provide drivers for 82576 VF for most of the versions of Windows being referenced. No indication of what version of the driver is being using for the NIC, no indication of what the Windows device manager reports for the device, no qemu log messages or host log messages, etc... Why is this a kernel bug vs a qemu bug?

Revision history for this message
Yongjie Ren (yongjie-ren) wrote :

You can try to follow the reproduce steps described in bug description to reproduce this bug with the given commit of kvm.git
I think it's easy to reproduce. For Intel NIC drivers in windows, you can download the appropriate driver you need via searching "Network Adapter Drivers for Windows" keywords in the following link.
http://downloadcenter.intel.com/SearchResult.aspx?lang=eng
BTW, many Intel Ethernet Controllers use the same driver named "PROWinx64.exe"(64bit) or "PROWin32.exe"(32bit).
My driver for the assigned 82572 NIC for windows guest is the latest driver downloaded from the above website. Its version is 16.7.
I said it was a kernel bug because it doesn't work when using latest kvm with an older qemu-kvm (in July 2011) . The older qemu-kvm was proved to be a good version at that time with appropriate kvm.
it's good with: kvm.git e62c2ef9 + qemu-kvm.git 525e3df7
it's bad with: kvm.git (latest) + qemu-kvm.git 525e3df7

The phenomenon with the latest kvm upstream has some difference now. Now VT-D/SR-IOV NIC in win2k8 guest works fine now, but VT-D/SR-IOV NIC in win7 or winXP guest doesn't work. However, when I reported that bug, VT-D/SR-IOV NIC didn't work in win2k8, win7 or winXP guest.

Revision history for this message
Yongjie Ren (yongjie-ren) wrote :

This is the dmesg in host in vtd assignment. Please look at the log from its tail. The device with BDF "08:00.0" is the assigned 82572EI NIC to a Win7 guest.

Revision history for this message
Yongjie Ren (yongjie-ren) wrote :

From my test, this bug is fixed in the latest kvm.git. I tried 82572 NIC for device assignment in WinXP, Win7 and Win2k8. The VT-d NIC works fine in Windows guest.
kvm.git + qemu-kvm.git = result
f4d1f417 + df44afac = bad
eb9ede96 + df44afac = good

But I don't know which exact patch fixed this bug.

Changed in qemu:
status: New → Fix Committed
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.