Files
freebsd/sys/modules
Kevin Bowling b9cee186b8 ice: Add a failure injection facility
Add compile-time optional, non-sleeping fail points around every VF
creation resource boundary, before VF VSI reconstruction, and in the
GET_STATS validation path.

Provide an ICE-wide wrapper and device selector so other driver
subsystems can add scoped points without duplicating the failpoint
plumbing.  Keep the current SR-IOV points and VF selector in an iov
child namespace.

Compile the facility only with options DRIVER_FAILPOINTS.  This shared
option avoids a separate kernel option for every driver that provides
test-only injection hooks.  Ordinary kernels contain no ICE failpoint
objects or sysctl nodes.  Require an exact PF device name and
optionally a VF index before any point can fire.  This prevents a stale
test setting from affecting another PF.

The hooks exposed two reset-lifetime defects while validating the
existing SR-IOV review series.  A PF reset could discard a firmware VSI
before teardown, and a rebuilt sibling could leave stale switch-filter
state after IOV destroy.

Tested on an E810-XXV with INVARIANTS and WITNESS.  All twelve creation
checkpoints rolled back and permitted immediate resource reuse.  Forced
reconstruction and malformed GET_STATS failures also preserved sibling
operation and reply cardinality.

Reviewed by:	gallatin, nprice, ziaee
MFC after:	2 weeks
Sponsored by:	BBOX.io
Differential Revision:	https://reviews.freebsd.org/D58940
2026-09-17 01:37:51 -07:00
..
…
…
2026-07-08 07:13:43 +01:00
…
…
…
…
…
…
…
…
2026-06-02 22:59:55 -07:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-14 13:14:56 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
2026-09-16 17:12:07 +03:00
2026-06-30 22:42:05 -04:00
…
2026-09-17 01:37:51 -07:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-04-17 10:11:42 -07:00
…
…
…
…
2026-09-10 21:39:32 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-05-31 20:10:46 +03:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-09-01 17:41:04 -04:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-09-15 01:44:33 +00:00
2026-08-09 09:54:00 -07:00
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-07-09 22:14:51 -06:00
2026-09-14 14:37:46 +02:00
…