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
Details
Details
- Reviewers
kgalazka erj - Group Reviewers
Intel Networking Restricted Owners Package (Owns No Changed Paths)
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Comment Actions
The more I work on Linux the more I think these were the appropriate type of lock to be using for the shared code.