freebsd-dev/sys/dev/nvme
Warner Losh d85d964829 Try polling the qpairs on timeout.
On some systems, we're getting timeouts when we use multiple queues on
drives that work perfectly well on other systems. On a hunch, Jim
Harris suggested I poll the completion queue when we get a timeout.
This patch polls the completion queue if no fatal status was
indicated. If it had pending I/O, we complete that request and
return. Otherwise, if aborts are enabled and no fatal status, we abort
the command and return. Otherwise we reset the card.

This may clear up the problem, or we may see it result in lots of
timeouts and a performance problem. Either way, we'll know the next
step. We may also need to pay attention to the fatal status bit
of the controller.

PR: 211713
Suggested by: Jim Harris
Sponsored by: Netflix
2018-03-16 05:23:48 +00:00
..
nvme_ctrlr_cmd.c NVMe: Add big-endian support 2018-02-22 13:32:31 +00:00
nvme_ctrlr.c Fix error messages in cut and pasted code. 2018-03-14 23:28:28 +00:00
nvme_ns_cmd.c NVMe: Add big-endian support 2018-02-22 13:32:31 +00:00
nvme_ns.c Don't make the namespace devices eternal. 2018-03-14 23:01:04 +00:00
nvme_private.h Try polling the qpairs on timeout. 2018-03-16 05:23:48 +00:00
nvme_qpair.c Try polling the qpairs on timeout. 2018-03-16 05:23:48 +00:00
nvme_sim.c Move setting of CAM_SIM_QUEUED to before we actually submit it to the 2018-01-17 17:08:26 +00:00
nvme_sysctl.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_test.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_util.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme.c NVMe: Add big-endian support 2018-02-22 13:32:31 +00:00
nvme.h Implement trim collapsing in nda 2018-03-14 16:44:50 +00:00