Page MenuHomeFreeBSD

ice: Protect the PF mailbox from flooding VFs
Needs ReviewPublic

Authored by kbowling on Thu, Aug 20, 1:55 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Sep 12, 2:01 PM
Unknown Object (File)
Tue, Sep 8, 7:32 PM
Unknown Object (File)
Tue, Sep 8, 5:13 PM
Unknown Object (File)
Mon, Sep 7, 6:26 PM
Unknown Object (File)
Mon, Sep 7, 2:05 PM
Unknown Object (File)
Sat, Sep 5, 8:49 PM
Unknown Object (File)
Sat, Sep 5, 12:30 PM
Unknown Object (File)
Sat, Sep 5, 9:10 AM
Subscribers

Details

Reviewers
kgalazka
Group Reviewers
Intel Networking
Restricted Owners Package(Owns No Changed Paths)
Summary
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 and isolate the offending VF so
that it cannot continue to fill the shared queue.  A physical VFLR, PF
reset, or IOV recreation releases it.

Process at most one initially full mailbox immediately.  If producers
keep it nonempty, leave its interrupt masked and let the periodic admin
timer schedule bounded drain work.  This prevents sustained mailbox
traffic from monopolizing the iflib admin task.

Document both protection models and add failure-injection points for the
isolation and scheduling paths.

On an E810-XXV with two host-attached iavf VFs, injected overflow on VF
0 disabled 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

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped