diff options
| author | R. Christian McDonald <rcm@FreeBSD.org> | 2026-11-02 17:10:17 +0000 |
|---|---|---|
| committer | R. Christian McDonald <rcm@FreeBSD.org> | 2026-11-02 17:10:17 +0000 |
| commit | 5d9f99143690dcd18e326937769f03514eee2652 (patch) | |
| tree | be201c2c690e828ff05919d8c0e0c34540120147 /lib/libc/net/send.c | |
| parent | 0e44056f19ab339fe7e37c03e49cf50b33bf1d6b (diff) | |
When a receive ring is full the hardware drops the packet and counts it
in RQDPC, a per-queue register the driver never read. Such drops were
invisible: MPC counts packet buffer overflows, not descriptor
exhaustion, so an overloaded queue lost packets with nothing to show for
it. With several receive queues this is the common overload signature,
since RSS loads the queues unevenly and one saturated queue drops while
the others idle.
Read RQDPC for each queue with the other statistics and account the
drops per queue as dev.igc.N.queue_rx_M.rx_drops and in total as the
interface's input queue drop counter (netstat -d, Idrop), as ixgbe does
with QPRDC. Write the register back to zero after reading; the I210
documents it as read/write rather than read-to-clear.
Reviewed by: kbowling
MFC after: 2 weeks
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D61004
Diffstat (limited to 'lib/libc/net/send.c')
0 files changed, 0 insertions, 0 deletions
