linux/drivers/nvme/host
Keith Busch b2a0eb1a0a nvme-pci: Remove watchdog timer
The controller status polling was added to preemptively reset a failed
controller. This early detection would allow commands that would normally
timeout a chance for a retry, or find broken links when the platform
didn't support hotplug.

This once-per-second MMIO read, however, created more problems than
it solves. This often races with PCIe Hotplug events that required
complicated syncing between work queues, frequently triggered PCIe
Completion Timeout errors that also lead to fatal machine checks, and
unnecessarily disrupts low power modes by running on idle controllers.

This patch removes the watchdog timer, and instead checks controller
health only on an IO timeout when we have a reason to believe something
is wrong. If the controller is failed, the driver will disable immediately
and request scheduling a reset.

Suggested-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2017-06-15 14:30:08 +02:00
..
core.c nvme: queue ns scanning and async request from nvme_wq 2017-06-15 14:29:48 +02:00
fabrics.c nvme: move nr_reconnects to nvme_ctrl 2017-06-15 14:29:49 +02:00
fabrics.h nvme: move nr_reconnects to nvme_ctrl 2017-06-15 14:29:49 +02:00
fc.c nvme: move nr_reconnects to nvme_ctrl 2017-06-15 14:29:49 +02:00
Kconfig nvme-fabrics: Add host support for FC transport 2016-12-06 10:17:56 +02:00
lightnvm.c block: introduce new block status code type 2017-06-09 09:27:32 -06:00
Makefile nvme-fabrics: Add host support for FC transport 2016-12-06 10:17:56 +02:00
nvme.h nvme: move nr_reconnects to nvme_ctrl 2017-06-15 14:29:49 +02:00
pci.c nvme-pci: Remove watchdog timer 2017-06-15 14:30:08 +02:00
rdma.c nvme: move nr_reconnects to nvme_ctrl 2017-06-15 14:29:49 +02:00
scsi.c nvme-scsi: remove nvme_trans_security_protocol 2017-04-27 08:39:32 +02:00