[Bug 297865] [if_aq] Missing PCI ID for Lenovo P620 Aquantia AQC107 (0x07b1) and queue allocation instability on Threadripper CPUs

[email protected]
Newsgroups gmane.os.freebsd.bugs
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297865

            Bug ID: 297865
           Summary: [if_aq] Missing PCI ID for Lenovo P620 Aquantia AQC107
                    (0x07b1) and queue allocation instability on
                    Threadripper CPUs
           Product: Base System
           Version: 15.1-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]

Created attachment 274088
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=274088&action=edit
Unified diff to add Lenovo P620 device ID (0x07b1)

The native `if_aq` driver in FreeBSD 15.x does not recognize the Aquantia
AQC107 network adapter integrated into the Lenovo ThinkStation P620. 

Additionally, once the PCI ID is patched locally, the driver suffers from
severe packet loss and instability out-of-the-box due to the massive core count
of the Threadripper Pro CPU attempting to allocate too many MSI-X queues.

Hardware details from pciconf:
vendor     = 'Aquantia Corp.'
device     = 'AQtion AQC107 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic
10G]'
vendor ID  = 0x1d6a
device ID  = 0x07b1
subvendor  = 0x17aa
subdevice  = 0x1046

Steps to reproduce:
1. Boot FreeBSD 15.0/15.1 on a Lenovo ThinkStation P620.
2. The Aquantia NIC is seen by the system (noneX@pci...) but is not claimed by
`if_aq` due to the specific Lenovo device ID (0x07b1) missing from the
supported device list.
3. If the ID is manually added to the source and the module recompiled, the
interface links up but drops packets heavily because the Threadripper CPU
causes the driver to allocate more queues than the hardware can stably handle.

Proposed Solution:
1. PCI ID Addition: Add `0x07b1` to the recognized device table in the `if_aq`
source code.
2. Queue Allocation: Consider capping the maximum default `rx_queues` and
`tx_queues` in the driver to a safe value (e.g., 8) for this chipset, or at
least document the necessity to limit them via `loader.conf`:
   hw.aq.rx_queues="8"
   hw.aq.tx_queues="8"
   hw.aq.msix_disable="1"

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.