NIC assignment order in command line make some NIC can't work
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Environment:
------------
Host OS (ia32/ia32e/
Guest OS (ia32/ia32e/
Guest OS Type (Linux/
kvm.git Commit:
qemu-kvm Commit:
Host Kernel Version:3.0.0-rc2+
Hardware: Westmere-EP platform
Bug detailed description:
-------
When using qemu-system-x86_64 to create a linux guest with a 82586 NIC and a 82572EI NIC statically assigned, the two NIC's order in command line may make 82586 NIC can't work in guest.
command1: qemu-system-x86_64 -m 1024 -smp 2 -device pci-assign,
command2: qemu-system-x86_64 -m 1024 -smp 2 -device pci-assign,
Using command1 to create a guest, both two NICs works well in guest.
While using command2 to create a guest, 82576(kawela) NIC 0c:00.0 cannot get IP in guest.
BDF 0c:00.0 is a 82576(kawela) NIC, while BDF 0e:00.1 is 82572EI NIC.
The only difference of the two command lines is the order of NICs assignment.
And only the 82576(kawela) NIC have this problem, the other one 82572EI always works well.
And sriov VF doesn't have this issue. A VF and a 82576 PF assigned to a guest always work well.
I don't know the order of NIC assignment in qemu-system-x86_64 will make this difference in guest. Maybe it's a qemu bug ?
Reproduce steps:
----------------
1.pci-stub the two NIC
2.create a guest: qemu-system-x86_64 -m 1024 -smp 2 -device
pci-assign,
qcow-rhel6.img
(0c:00.0 is a 82576 NIC, and 0e:00.1 is another NIC).
Current result:
----------------
82576 PF and the other NIC in guest will work well regardless of what the order of assignment is.
Expected result:
----------------
For both working and non-working cases, please provide:
- guest dmesg
- lspci -vvv for each NIC in the guest
- lspci -vvv for each NIC in the host
Also, please test using a fixed address for the device, ex. -device pci-assign, host=0e: 00.1,addr= 3 If you reverse the command line order, but keep the address of each device the same, does the problem still occur? If you keep the command line order the same, but swap the addresses of each device, does the problem still occur?