diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-18 11:04:33 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-09-17 00:58:10 +0000 |
| commit | 99191ce8044dd82d317ec62efea35bf5369cd592 (patch) | |
| tree | 1e3d2ae9a30917be34fc6c946473e165948512b2 /test/ELF/lto/(developers-only) | |
| parent | aae5b168820a9c39e39c6dff2f31df0522f91901 (diff) | |
ice: Honor iflib transmit completion batching
ice marked every transmitted packet RS and recorded every last
descriptor in its report-status queue. Hardware therefore wrote
descriptor status for every packet, and the driver traversed every
packet while reclaiming completed descriptors.
iflib marks selected packets with IPI_TX_INTR as completion
checkpoints. It forces a checkpoint as deferred work or ring pressure
grows. Retain EOP on every packet, but set RS and record the descriptor
only at those checkpoints.
DPDK uses the same sparse-RS design and defaults tx_rs_thresh to 32.
Let iflib choose the adaptive interval for FreeBSD. This reduces PCIe
and memory traffic while preserving bounded descriptor reclamation.
Validated on an E810-XXV in an A-B-A test with five matched
four-stream, TSO-disabled transmit runs per phase. Median throughput
was 9.413, 9.413, and 9.414 Gbps. Median whole-system CPU was 21.54%,
17.75%, and 21.62%, respectively. The candidate used less system CPU
than both exact-baseline phases in every pair. Interrupt rate was
unchanged, no transmit watchdog fired, and normal TSO traffic remained
line-rate. DTrace confirmed that only iflib-selected packet-final
descriptors carried RS after the change. The effect should be more
profound at 200Gbps but my DUT is network limited.
Reviewed by: gallatin
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D58910
Diffstat (limited to 'test/ELF/lto/(developers-only)')
0 files changed, 0 insertions, 0 deletions
