diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-19 11:51:42 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-09-18 01:39:55 +0000 |
| commit | cef57e81ce906bcceb0bd3097021be4110f192c5 (patch) | |
| tree | d5720a1e247788f593b2906d85df946eee1cf41a /sys/modules/sctp/(public-mirror) | |
| parent | 923b9a80c21ff178ceb4ffb23374e9ef924adb66 (diff) | |
Wire the shared code mailbox-overflow detector into the VF lifecycle and
virtchnl dispatcher. E830 controllers use their per-VF hardware
in-flight-message watermark. On older controllers, attribute a
congested mailbox snapshot to its sender, reset it with its queues
disabled, and discard its subsequent requests. Advance snapshot
accounting even for discarded requests. A physical VFLR, PF reset, or
IOV recreation releases the VF. A blocked VF can still submit mailbox
messages after reset, so discarding requests does not stop it from
replenishing the shared queue.
Process at most one initially full mailbox immediately. If producers
keep it nonempty, mask only the mailbox interrupt cause and let the
periodic admin timer schedule bounded drain work. Keep the shared admin
vector enabled so that OICR and other control-queue events can still be
serviced. Re-enable the mailbox cause after draining and recheck the
queue head for arrivals while the cause was masked. Retry failed reads
through the same deferred path instead of treating them as an empty queue.
Document both protection models and add failure-injection points for the
isolation and scheduling paths.
E810-XXV tests with two host-attached iavf VFs injected overflow on VF 0,
disabling only that VF while VF 1 completed 60 of 60 pings. A physical
VFLR and a PF reset each released VF 0; IOV recreation also reset its
cumulative count. Forced persistent mailbox-pending state produced 20
admin and control-queue passes in five seconds, remained timer-paced,
and did not interrupt sibling traffic.
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D59029
Diffstat (limited to 'sys/modules/sctp/(public-mirror)')
0 files changed, 0 insertions, 0 deletions
