Bug 200459

Summary: [nvme] Ioctl for passthrough can hang if called during nvme reset.
Product: Base System Reporter: oren.berman
Component: miscAssignee: freebsd-bugs (Nobody) <bugs>
Status: New ---    
Severity: Affects Only Me CC: jimm.grogan, otis
Priority: ---    
Version: 10.1-RELEASE   
Hardware: Any   
OS: Any   

Description oren.berman 2015-05-26 09:20:39 UTC
The ioctl for PASSTHROUGH in the nvme driver should return an ERROR if the controller is in reset state,for example checking the ctrlr->is_resetting bit, Otherwise the ioctl might hang.

BR
Oren
Comment 1 Juraj Lutter freebsd_committer freebsd_triage 2020-11-13 22:00:30 UTC
I'm seeing something similar, a box with 22x nvme and 2x SSD, running either 12-STABLE or 13-CURRENT (as of today). After certain amount of time (and workload), ioctls are hanging, rendering the box almost unresponsive to some operations.

ddb showed that there are two suspects:
mrsas_ocr_thread()
nvme_ctrlr_passthrough_cmd()

the rest of processes and threads are in sched_switch()

OCR is Online Controller Reset.