Re: VT-d not working for FreeBSD 9.0 guest

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alex Williamson <alex.williamson <at> redhat.com> writes:

> 
> On Wed, 2012-05-16 at 17:49 +0000, Shesha Sreenivasamurthy wrote:
> > I'm using FreeBSD 9.0 (FreeBSD freebsd9-i386 9.0-RELEASE FreeBSD 9.0-RELEASE)
> > as my guest OS with qemu-kvm (qemu-kvm-1.1-rc2/x86_64-softmmu/
> > qemu-system-x86_64) running on centos 6.2 (CentOS release 6.2) with
> > 2.6.32-220.el6.x86_64 kernel. I am using Intel's 82599EB 10-Gigabit hardware
> > on the host, which I am trying to export into the FreeBSD guest OS. The guest
> > driver (version 2.4.4) will claim it.  However, the status is shown as
> > "no carrier" an therefore cannot ping any other system.
> > 
> > $ ifconfig ix0
> > ix0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> >         
> > options=401bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,
> > VLAN_HWCSUM,TSO4,VLAN_HWTSO>
> >         ether 90:e2:ba:0d:3d:b0
> >         inet 4.4.4.1 netmask 0xffffff00 broadcast 4.4.4.255
> >         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> >         media: Ethernet autoselect
> >         status: no carrier
> > 
> > On the host side, before the ixgbe is loaded in the guest, /proc/interrupts
> > show the following entry for kvm
> > 
> > # cat /proc/interrupts | grep kvm
> >   30:          0          0          0          0          0          0
> >   0          0          0          0          0          0          0
> >   0          0          0 IR-IO-APIC-fasteoi kvm_assigned_intx_device
> > 
> > However, after the driver is loaded, the above entry is gone but two new
> > entries show up.
> > 
> > # cat /proc/interrupts | grep kvm
> >   76:          0          0          0          0          0          0
> >   0          0          0          0          0          0          0
> >   0          0          0          IR-PCI-MSI-edge   kvm_assigned_msix_device
> >   77:          0          0          0          0          0          0
> >   0          0          0          0          0          0          0
> >   0          0          0          IR-PCI-MSI-edge  kvm_assigned_msix_device.
> 
> This is expected, the driver enabled MSI-X.  If you have an equivalent
> of lspci, you should be able to see before that MSI/MSI-X is disabled
> and after MSI-X is enabled with 2 vectors.  Do you ever get interrupts
> on these lines?
> 
> > To make sure, the my host configurations are fine, I loaded linux guest, with
> > exact same qemu params and host configurations. It works just fine.
> > 
> > What I noticed in case linux guest is, to start with same entry is seen in
> > /proc/interrupts. However, after the ixgbe is loaded in the guest, I see only
> > one entry instead of two as in case of freebsd.
> > 
> > # cat /proc/interrupts | grep kvm
> >   30:          0          0          0          0          0          0
> >   0          0          0          0          0          0          0
> >   0          0          0       IR-IO-APIC-fasteoi   kvm_assigned_intx_device
> > 
> > # cat /proc/interrupts | grep kvm
> >   76:          0          0          0          0          0          0
> >   0          0          0          0          0          0          0
> >   0          0          0          IR-PCI-MSI-edg   kvm_assigned_msi_device
> 
> Linux may be enabling MSI instead of MSI-X, that would be Ok.  Check
> lspci in the guest to see what Linux thinks it's using.
> 
> > Similar problem was reported earlier too: 
> > http://comments.gmane.org/gmane.comp.emulators.kvm.devel/83806
> > 
> > Any ideas or advice will be highly valued
> 
> Right, we fixed how we do MSI-X vector allocation so we can better track
> how this driver works.  That allows an 82576 (igb) device to work, but
> there might still be a FreeBSD ixgbe driver issue that's not allowing it
> to see the link state.  Thanks,
> 
> Alex
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo <at> vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 

I tried the same card on a natively running freebsd9.0 and used the same
drivers and it works fine.

It was installed using the same ISO from which I created the vm disk image,
used the same driver and it works fine. I have captured the output of loading
ixgbe driver in a VM with VT-d and loading the same driver on freebsd running
natively on a system.

===
VM
===
ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.4.4> port
0xc040-0xc05f mem 0xfea80000-0xfeafffff,0xfebd0000-0xfebd3fff irq 11
at device 3.0 on pci0
ix0: Using MSIX interrupts with 2 vectors
ixgbe_init_mac_link_ops_82599
ixgbe_identify_phy_generic
ixgbe_identify_phy_generic: -17
ixgbe_identify_sfp_module_generic
---------------
type: 0xF
addr: 0x0
id: 0x3
sfp_type: 0x5
sfp_setup_needed: 0x1
revision: 0x0
media_type: 0x0
autoneg_advertised: 0x0
smart_speed: 0x1
smart_speed_active: 0x0
multispeed_fiber: 0x1
reset_if_overtemp: 0x0
---------------
ixgbe_identify_phy_82599: 0
ixgbe_init_mac_link_ops_82599
ixgbe_init_mac_link_ops_82599
Enter ixgbe_check_mac_link_generic
LINKS orig: 2C080001, new: 2C080001
link_up_wait_to_complete: 0
link_up: 1
IXGBE_LINK_SPEED_10GB_FULL: 0x80, IXGBE_LINK_SPEED_1GB_FULL: 0x20
IXGBE_LINK_SPEED_100_FULL: 0x8, IXGBE_LINK_SPEED_UNKNOWN: 0x0
speed: 0x80
ixgbe_identify_phy_generic
ixgbe_identify_phy_generic: 0
ixgbe_identify_phy_82599: 0
ixgbe_identify_sfp_module_generic
---------------
type: 0xF
addr: 0x0
id: 0x3
sfp_type: 0x5
sfp_setup_needed: 0x0
revision: 0x0
media_type: 0x1
autoneg_advertised: 0x0
smart_speed: 0x1
smart_speed_active: 0x0
multispeed_fiber: 0x1
reset_if_overtemp: 0x0
---------------
ix0: Ethernet address: 90:e2:ba:0d:3d:b0
Enter ixgbe_get_bus_info_generic
link_status: 0x1082, bus_width: 0x0, bus_sped: 0x0
NEW link_status: 0x1082, bus_width: 0x8, bus_sped: 0x1388
ix0: PCI Express Bus: Speed 5.0Gb/s Width x8

======
NATIVE
======

ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.4.4> port
0xe880-0xe89f mem 0xf8e80000-0xf8efffff,0xf8e7c000-0xf8e7ffff irq 30
at device 0.0 on pci3
ix0: Using MSIX interrupts with 9 vectors
ix0: RX Descriptors exceed system mbuf max, using default instead!
ixgbe_init_mac_link_ops_82599
ixgbe_identify_phy_generic
ixgbe_identify_phy_generic: -17
ixgbe_identify_sfp_module_generic
---------------
type: 0xF
addr: 0x0
id: 0x3
sfp_type: 0x5
sfp_setup_needed: 0x1
revision: 0x0
media_type: 0x0
autoneg_advertised: 0x0
smart_speed: 0x1
smart_speed_active: 0x0
multispeed_fiber: 0x1
reset_if_overtemp: 0x0
---------------
ixgbe_identify_phy_82599: 0
ixgbe_init_mac_link_ops_82599
ixgbe_init_mac_link_ops_82599
Enter ixgbe_check_mac_link_generic
LINKS orig: 2C080001, new: 2C080001
link_up_wait_to_complete: 0
link_up: 0
IXGBE_LINK_SPEED_10GB_FULL: 0x80, IXGBE_LINK_SPEED_1GB_FULL: 0x20
IXGBE_LINK_SPEED_100_FULL: 0x8, IXGBE_LINK_SPEED_UNKNOWN: 0x0
speed: 0x80
ixgbe_identify_phy_generic
ixgbe_identify_phy_generic: 0
ixgbe_identify_phy_82599: 0
ixgbe_identify_sfp_module_generic
---------------
type: 0xF
addr: 0x0
id: 0x3
sfp_type: 0x5
sfp_setup_needed: 0x0
revision: 0x0
media_type: 0x1
autoneg_advertised: 0x0
smart_speed: 0x1
smart_speed_active: 0x0
multispeed_fiber: 0x1
reset_if_overtemp: 0x0
---------------
ix0: Ethernet address: 90:e2:ba:0d:3e:5c
Enter ixgbe_get_bus_info_generic
link_status: 0x1082, bus_width: 0x0, bus_sped: 0x0
NEW link_status: 0x1082, bus_width: 0x8, bus_sped: 0x1388
ix0: PCI Express Bus: Speed 5.0Gb/s Width x8
===



--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux