All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [Bug 698] i40e unload on FreeBSD prints "unqualified module" and breaks link
@ 2021-05-07 13:30 bugzilla
  0 siblings, 0 replies; only message in thread
From: bugzilla @ 2021-05-07 13:30 UTC (permalink / raw)
  To: dev

https://bugs.dpdk.org/show_bug.cgi?id=698

            Bug ID: 698
           Summary: i40e unload on FreeBSD prints "unqualified module" and
                    breaks link
           Product: DPDK
           Version: 20.11
          Hardware: x86
                OS: FreeBSD
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: ethdev
          Assignee: dev@dpdk.org
          Reporter: brian90013@gmail.com
  Target Milestone: ---

Hello,

I am using an Intel XL710-Q2 (2x40GbE) NIC on FreeBSD-12.2 with DPDK 20.11.1. I
have the two ports connected to each other via fiber. I have been testing my
application by running DPDK on ixl0 and using the standard OS driver for ixl1.
I am able to transmit and receive packets between the two without issue.
However, when I unload DPDK with 'kldunload nic_uio', the ixl0 driver attempts
to reload then prints:

ixl0: Link failed because an unqualified module was detected!

At this point, both ixl0 and ixl1 are in a "no carrier" state. I have found a
complete power cycle is required to bring the interfaces back online. I have
used both ixl0 and ixl1 in FreeBSD but only see this message and lose link when
returning from using DPDK. Here's the full trace from /var/log/messages showing
ixl0 coming back up as nic_uio is removed:


kernel: nic_uio0: 
kernel: detached
kernel: pci8: <network, ethernet> at device 0.0 (no driver attached)
kernel: nic_uio_unload: entered...
kernel: nic_uio_unload: calling to device_probe_and_attach for
dev=0xfffff8010632f600...
kernel: ixl0: <Intel(R) Ethernet Controller XL710 for 40GbE QSFP+ - 2.3.0-k>
mem 0xfa800000-0xfaffffff
kernel: ,0xfb008000-0xfb00ffff irq 40 at device 0.0 on pci8
kernel: ixl0: fw 6.0.48442 api 1.7 nvm 6.01 etid 80003564 oem 0.0.0
kernel: ixl0: PF-ID[0]: VFs 64, MSI-X 129, VF MSI-X 5, QPs 768, I2C
kernel: ixl0: 
kernel: Using 1024 TX descriptors and 1024 RX descriptors
kernel: ixl0: 
kernel: queue equality override not set, capping rx_queues at 4 and tx_queues
at 4
kernel: ixl0: Using 4 RX queues 4 TX queues
kernel: ixl0: Using MSI-X interrupts with 5 vectors
kernel: ixl0: Ethernet address: 00:23:56:1f:22:15
kernel: ixl0: Allocating 4 queues for PF LAN VSI; 4 queues active
kernel: ixl0: PCI Express Bus: Speed 8.0GT/s Width x8
kernel: ixl0: netmap queues/slots: TX 4/1024, RX 4/1024
kernel: nic_uio_unload: done.
kernel: nic_uio_unload: leaving...
kernel: ixl0: 
kernel: Link failed because an unqualified module was detected!


My problem - returning from DPDK breaks the link - sounds very similar to the
following message posted to DPDK-users in June 2017. That issue was on Ubuntu
16.04 / DPDK 17.02. The second thread indicates it was fixed by updating to
DPDK 17.08 and the Linux driver 2.0.30. The third link contains a Linux i40e
patch from September 2017 related to moving the unqualified module check. I
wonder if a similar change is required to work with FreeBSD? I have posted here
vs. the FreeBSD bug tracker as the behavior has only been seen when leaving
DPDK.

http://mails.dpdk.org/archives/users/2017-June/002116.html
https://sourceforge.net/p/e1000/bugs/570/
https://patchwork.ozlabs.org/project/netdev/patch/20170930004507.20072-3-jeffrey.t.kirsher@intel.com/

Thank you for your help. I am hopeful the XL710 can be used both in FreeBSD and
DPDK without power cycles between use.

-- 
You are receiving this mail because:
You are the assignee for the bug.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-05-07 13:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-07 13:30 [dpdk-dev] [Bug 698] i40e unload on FreeBSD prints "unqualified module" and breaks link bugzilla

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.