CAM locking question
mav at FreeBSD.org
Tue Dec 13 23:05:44 UTC 2011
> As an experiment, I added CAM_SIM_LOCK/CAM_SIM_UNLOCK around the
> TAILQ_INSERT_TAIL() in xpt_done(), and what was a reliable hang after
> a minute or two hasn't shown up in an hour.
There is no assertion, but in all cases I remember xpt_done() called
while holding SIM lock. Adding another CAM_SIM_LOCK/CAM_SIM_UNLOCK
should cause lock recursion and panic, if kernel built with INVARIANTS.
More information about the freebsd-scsi