Bug 200459 - [nvme] Ioctl for passthrough can hang if called during nvme reset.
Summary: [nvme] Ioctl for passthrough can hang if called during nvme reset.
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: 10.1-RELEASE
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-26 09:20 UTC by oren.berman
Modified: 2020-11-13 22:00 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.