https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296239
Bug ID: 296239
Summary: if_bnxt: netmap attach fails with EINVAL (22) during
device initialization
Product: Base System
Version: 14.4-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: [email protected]
Reporter: [email protected]
Created attachment 272087
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=272087&action=edit
Error error screenshot
Environment:
* FreeBSD: 14.4
* Driver: if_bnxt
* Hardware: Broadcom NetXtreme-E Ethernet Virtual Function
* Phsyical Hardware: BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller
* Boot environment: mfsBSD custom image
* Virtualization: KVM virtual machine running on an SR-IOV Virtual Function
Description:
During system boot, the Broadcom bnxt interface initializes successfully and
reaches link-up state. However, netmap registration fails during driver
initialization.
Observed boot log:
uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
Building /boot/modules/linker.hints
Autoloading module: if_bnxt
bnxt0: <Broadcom NetXtreme-E Ethernet Virtual Function> ...
bnxt0: Using 256 TX descriptors and 256 RX descriptors
bnxt0: DEBUG queues=4 rx_queues=0 tx_queues=0 isc_nrxqsets=0 isc_ntxqsets=0
bnxt0: Using 0 RX queues 0 TX queues
bnxt0: Using MSI-X interrupts with 9 vectors
bnxt0: Link is UP full duplex (NRZ), FC - none - 10000 Mbps
bnxt0: Ethernet address: xx:xx:xx:xx:xx:xx
bnxt0: link state changed to UP
bnxt0: netmap attach failed: 22
Additional debug statements were added to iflib_msix_init() and the MSI
allocation path to determine whether the queue count reduction was caused by
interrupt vector limitations or by invalid queue-set initialization. The
collected data showed that the hardware reported sufficient interrupt vectors,
while isc_nrxqsets and isc_ntxqsets were already zero prior to queue
allocation. This indicates the issue originates from queue-set initialization
rather than interrupt resource availability.
iflib_msix_init(if_ctx_t ctx)
device_printf(dev,
"DEBUG queues=%d rx_queues=%d tx_queues=%d isc_nrxqsets=%d
isc_ntxqsets=%d\n",
queues,
rx_queues,
tx_queues,
scctx->isc_nrxqsets,
scctx->isc_ntxqsets);
msi:
vectors = pci_msi_count(dev);i
device_printf(dev,
"DEBUG vectors=%d isc_nrxqsets=%d isc_ntxqsets=%d\n",
vectors,
scctx->isc_nrxqsets,
scctx->isc_ntxqsets);
Please advise whether this is a known limitation of if_bnxt with netmap support
on FreeBSD 14.4, or if additional debugging information should be collected to
identify the root cause.
I also tried modifying iflib_netmap_attach() to return 0. With this change, the
interface was added successfully. However, when dhclient attempted to obtain an
IP address, the server encountered a kernel panic.
--
You are receiving this mail because:
You are the assignee for the bug.