Page MenuHomeFreeBSD

ice: Use sleepable locks in shared code
ClosedPublic

Authored by kbowling on Thu, Sep 3, 12:01 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Oct 1, 2:24 PM
Unknown Object (File)
Thu, Oct 1, 8:17 AM
Unknown Object (File)
Thu, Oct 1, 7:39 AM
Unknown Object (File)
Wed, Sep 30, 7:48 PM
Unknown Object (File)
Wed, Sep 30, 2:51 AM
Unknown Object (File)
Tue, Sep 29, 8:54 PM
Unknown Object (File)
Mon, Sep 28, 9:42 PM
Unknown Object (File)
Mon, Sep 28, 9:38 PM
Subscribers

Details

Reviewers
kgalazka
erj
Group Reviewers
Intel Networking
Restricted Owners Package(Owns No Changed Paths)
Commits
rGb272b2a94d98: ice: Use sleepable locks in shared code
Summary
The Intel shared code can wait for firmware resources while holding its
OS abstraction locks.  FreeBSD mapped these locks to mutexes, which
cannot be held across a voluntary sleep.  Concurrent PF rebuilds
therefore trigger WITNESS when RSS profile updates contend for the
firmware change lock.

Map the shared-code lock abstraction to exclusive sx locks.  This also
covers tunnel and flow-profile operations which can reach the same
firmware wait while serialized.

Validated with WITNESS on a dual-port Intel E835.  Sixteen CORE resets
rebuilt both PFs without lock warnings, reset failures, or watchdogs.
Ten interface down/up cycles and twenty promiscuous-filter cycles also
completed cleanly.

MFC after:      2 weeks
Sponsored by:   BBOX.io

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a reviewer: Restricted Owners Package.Thu, Sep 3, 12:01 PM
erj added a subscriber: erj.

The more I work on Linux the more I think these were the appropriate type of lock to be using for the shared code.

This revision was not accepted when it landed; it landed in state Needs Review.Thu, Sep 17, 12:02 AM
This revision was automatically updated to reflect the committed changes.