[Bug 297865] [if_aq] Missing PCI ID for Lenovo P620 Aquantia AQC107 (0x07b1) and queue allocation instability on Threadripper CPUs
| 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.