Kernel KVM virtualization development
 help / color / mirror / Atom feed
From: Shesha Sreenivasamurthy <sheshas@gmail.com>
To: kvm@vger.kernel.org
Subject: Re: VT-d not working for FreeBSD 9.0 guest
Date: Fri, 18 May 2012 18:38:27 +0000 (UTC)	[thread overview]
Message-ID: <loom.20120518T201747-474@post.gmane.org> (raw)
In-Reply-To: 1337192529.6954.249.camel@bling.home


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
===




  parent reply	other threads:[~2012-05-18 18:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-16 17:49 VT-d not working for FreeBSD 9.0 guest Shesha Sreenivasamurthy
2012-05-16 18:22 ` Alex Williamson
     [not found]   ` <CABL7MgGcOrJ8OGUDLH2coB7jckLa0eiQJYWw7ey49cw3SfN4mQ@mail.gmail.com>
2012-05-16 20:52     ` Alex Williamson
2012-05-18 18:38   ` Shesha Sreenivasamurthy [this message]
2012-05-18 18:55     ` Alex Williamson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=loom.20120518T201747-474@post.gmane.org \
    --to=sheshas@gmail.com \
    --cc=kvm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox