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.

Reply via email to