Spdk/lib/nvme
Shuhei Matsumoto a475aed55d nvme_pcie: Call transport_ctrlr_disconnect_qpair_done() if ctrlr_disable_poll() failed
nvme_ctrlr_disable_poll() continued to be called until it returned 0.
However, if the corresponding drive was unresponsive, the continuous
calls consumed CPU and affected other operations.

If the corresponding drive is unresponsive, we cannot complete disabling
the controller. Hence, call nvme_transport_ctrlr_disconnect_qpair_done()
if nvme_ctrlr_disable_poll() returned any value other than -EAGAIN.

Even before this patch, nvme_ctrlr_disable_poll() collected an error log
if it failed. Hence, we do not have to add more error logs.

Fixes issue #2931

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I26cabb94e5744e3a2d975670adbf2e4e48d5bd7a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17002
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Michael Haeuptle <michaelhaeuptle@gmail.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2023-03-09 23:31:15 +00:00
..
Makefile so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
nvme_ctrlr_cmd.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_ctrlr_ocssd_cmd.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_ctrlr.c include/nvme_spec.h: add changes for fdp log pages 2023-02-15 10:37:56 +00:00
nvme_cuse.c build: compile API functions with missing deps 2022-11-18 08:40:05 +00:00
nvme_cuse.h update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_discovery.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_fabric.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_internal.h nvme_rdma: Support SRQ for I/O qpairs 2023-01-17 23:53:01 +00:00
nvme_io_msg.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_io_msg.h update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_ns_cmd.c lib/nvme: include dword 13 field to extendable command structure 2023-03-09 23:22:41 +00:00
nvme_ns_ocssd_cmd.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_ns.c nvme: support 64 LBA formats for NVM and ZNS command set 2023-02-15 10:37:56 +00:00
nvme_opal_internal.h update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_opal.c misc: Fix spelling mistakes 2022-12-09 08:16:18 +00:00
nvme_pcie_common.c nvme_pcie: Call transport_ctrlr_disconnect_qpair_done() if ctrlr_disable_poll() failed 2023-03-09 23:31:15 +00:00
nvme_pcie_internal.h update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_pcie.c nvme: execute hotplug monitor even if hotplug_fd < 0 2022-11-21 16:15:44 +00:00
nvme_poll_group.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_qpair.c nvme: add API to get outstanding reqs number 2023-01-09 14:49:11 +00:00
nvme_quirks.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_rdma.c nvme_rdma: handle DEVICE_REMOVAL event in RDMA initiator 2023-03-07 11:50:05 +00:00
nvme_tcp.c nvme-tcp: nvme-tcp does not depend on lib/thread 2023-02-14 09:04:29 +00:00
nvme_transport.c nvme_pcie: Fix nvme_qpair_abort_all_queued_reqs() to be called for adminq 2023-03-09 23:31:15 +00:00
nvme_vfio_user.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme_zns.c nvme: support 64 LBA formats for NVM and ZNS command set 2023-02-15 10:37:56 +00:00
nvme.c update Intel copyright notices 2022-11-10 08:28:53 +00:00
spdk_nvme.map lib/nvme: Add support for IO management commands 2023-02-15 10:37:56 +00:00