Add an exact-device fail point immediately after the admin task checks IFC_IN_DETACH. This makes the detach race reproducible without affecting another interface. Use a bounded delay because the taskqueue lock remains held while the task runs. Mark the point nonsleepable as a safety backstop, and document a one-shot test for verifying that deregistration drains an already-running task before ether_ifdetach(). MFC after: 2 weeks
Details
Details
sysctl debug.fail_point.iflib.admin_task_device=igc1
sysctl debug.fail_point.iflib.admin_task_after_detach_check='1*print(1)->1*delay(5000000)'
You will see: fail point admin_task_after_detach_check executing
Then immediately run:
time devctl detach igc1
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable