> Hi Weidong,
>
> Thank you for your advice
> Finally, I could recognize a Intel NIC from the guest OS.
>
> But, I had a new problem.
>
> A guest os have been able to recognize the NIC with
> pci-passthrough. However the NIC could not get a IP address on a
> guest os
>
> The NIC causes the following errors and stops:
> 0000:00:05.0: eth1: Detected Tx Unit Hang:
>
> I collected information on webs and I knew that it was a bug of
> e1000e drivers, and used a driver of the newest version (e1000e
> 0.5.8.2.tar.gz), but the problem did not solve it.
>
> Will this error be caused by PCI-passthrough on KVM ?
> Of course the NIC works on a host OS normally.
>
> dmesg is as follows:
> [ 361.424319] e1000e: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow
> Control: RX/TX
> [ 387.711336] ACPI: PCI interrupt for device 0000:00:05.0 disabled
> [ 414.760362] e1000e: Intel(R) PRO/1000 Network Driver - 0.5.8.2-NAPI
> [ 414.760366] e1000e: Copyright (c) 1999-2008 Intel Corporation.
> [ 414.760853] ACPI: PCI Interrupt 0000:00:05.0[A] -> Link [LNKA] ->
> GSI 10 (level, high) -> IRQ 10
> [ 414.760901] PCI: Setting latency timer of device 0000:00:05.0 to 64
> [ 414.851311] 0000:00:05.0: : Failed to initialize MSI interrupts.
> Falling back to legacy interrupts.
> [ 415.235355] 0000:00:05.0: eth1: (PCI Express:2.5GB/s:Width x1)
> 00:19:d1:a3:fa:b3
> [ 415.235359] 0000:00:05.0: eth1: Intel(R) PRO/1000 Network
> Connection [ 415.235381] 0000:00:05.0: eth1: MAC: 7, PHY: 6, PBA No:
> ffffff-0ff [ 415.395924] ADDRCONF(NETDEV_UP): eth1: link is not ready
> [ 416.887888] e1000e: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow
> Control: RX/TX
> [ 416.887893] 0000:00:05.0: eth1: 10/100 speed: disabling TSO
> [ 416.888981] ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
> [ 419.124848] 0000:00:05.0: eth1: Detected Tx Unit Hang:
> [ 419.124850] TDH <0>
> [ 419.124851] TDT <3>
> [ 419.124858] next_to_use <3>
> [ 419.124858] next_to_clean <0>
> [ 419.124859] buffer_info[next_to_clean]:
> [ 419.124860] time_stamp <4ffc>
> [ 419.124861] next_to_watch <0>
> [ 419.124861] jiffies <5208>
> [ 419.124862] next_to_watch.status <0>
> [ 421.251409] 0000:00:05.0: eth1: Detected Tx Unit Hang:
> [ 421.251411] TDH <0>
> [ 421.251412] TDT <3>
> [ 421.251412] next_to_use <3>
> [ 421.251413] next_to_clean <0>
> [ 421.251414] buffer_info[next_to_clean]:
> [ 421.251415] time_stamp <4ffc>
> [ 421.251415] next_to_watch <0>
> [ 421.251416] jiffies <53fc>
> [ 421.251417] next_to_watch.status <0>
> [ 423.378487] 0000:00:05.0: eth1: Detected Tx Unit Hang:
> [ 423.378489] TDH <0>
> [ 423.378490] TDT <3>
> [ 423.378490] next_to_use <3>
> [ 423.378491] next_to_clean <0>
> [ 423.378491] buffer_info[next_to_clean]:
> [ 423.378492] time_stamp <4ffc>
> [ 423.378492] next_to_watch <0>
> [ 423.378493] jiffies <55f0>
> [ 423.378494] next_to_watch.status <0>
> [ 425.505743] 0000:00:05.0: eth1: Detected Tx Unit Hang:
> [ 425.505746] TDH <0>
> [ 425.505746] TDT <3>
> [ 425.505747] next_to_use <3>
> [ 425.505748] next_to_clean <0>
> [ 425.505749] buffer_info[next_to_clean]:
> [ 425.505749] time_stamp <4ffc>
> [ 425.505750] next_to_watch <0>
> [ 425.505751] jiffies <57e4>
> [ 425.505751] next_to_watch.status <0>
> [ 427.615676] eth1: no IPv6 routers present
> [ 427.632701] NETDEV WATCHDOG: eth1: transmit timed out
> [ 429.462389] e1000e: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow
> Control: RX/TX
> [ 429.462394] 0000:00:05.0: eth1: 10/100 speed: disabling TSO
>
> Any advice or tips will help?
>
> Thanks,
> Kazushi
>
>> Hi Kazushi,
>>
>> Make sure unload the driver of the device before assign it.
>>
>> Regards,
>> Weidong
>>
>> w1ndoz wrote:
>>> Hi
>>>
>>> I'm interested in PCI passthrough support.
>>>
>>> I downloaded Linux Kernel 2.6.28-rc7 and build and ran KVM (which
>>> is KVM-79) on this kernel. I started KVM with the following
>>> command-lines: $ qemu-system-x86_64 -boot c -m 512 -hda test.qcow
>>> -localtime -k en-us -pcidevice host=00:19.0 (00:19.0 is Intel(R)
>>> PRO/1000 Network Connection Device)
>>>
>>> However, KVM caused the following errors:
>>> Could not notify kernel about assigned device "00:19.0"
>>> register_real_device: Device or resource busy
>>> Segmantation_fault
>>>
>>> dmesg messages were as follows:
>>> $ dmesg
>>> [ 151.483167] [drm] Initialized drm 1.1.0 20060810
>>> [ 151.525100] pci 0000:00:02.0: PCI INT A -> GSI 16 (level, low)
>>> -> IRQ 16 [ 151.525105] pci 0000:00:02.0: setting latency timer to
>>> 64 [ 151.525193] pci 0000:00:02.0: irq 505 for MSI/MSI-X
>>> [ 151.525309] [drm] Initialized i915 1.6.0 20080730 on minor 0
>>> [ 187.854117] set status page addr 0x00033000
>>> [ 823.246792] kvm: guest NX capability removed
>>> [ 823.311659] kvm: guest NX capability removed
>>> [ 823.487849] qemu-system-x86[5940]: segfault at 1dc ip 0807c446
>>> sp 96420110 error 4 in qemu-system-x86_64[8048000+194000]
>>> [ 837.010304] kvm: guest NX capability removed
>>> [ 837.019163] e1000e 0000:00:19.0: BAR 0: can't reserve mem
>>> region [0xe0400000-0xe041ffff]
>>> [ 837.019163] kvm_vm_ioctl_assign_device: Could not get access to
>>> device regions [ 837.019194] kvm: guest NX capability removed
>>> [ 837.219560] qemu-system-x86[5944]: segfault at 1dc ip 0807c446
>>> sp 9636b110 error 4 in qemu-system-x86_64[8048000+194000]
>>>
>>> I think that my cpu and my chipset maybe support VT-x and VT-d.
>>>
http://www.intel.co.jp/products/desktop/motherboards/dq35jo/dq35jo-overview.htm
>>> CPU: Intel(R) Core(TM) 2 Duo CPU E6
>>> chipset: Intel(R) Q35 Express Chipset
>>>
>>> Any advive or tips will help ?
>>>
>>> Thanks,
>>> Kazushi