Spdk/lib/nvme
Alexey Marchuk 9b86f31a38 nvme/rdma: Handle failed send/recv as a fatal error
Do not make attempt to resubmit failed send/recv WR, instead
report and error to the upper layer (in case of new request) or
fail a qpair (in case of active polling).

In the case of failed ibv_post_send and disabled `delay_cmd_submit`
nvme_rdma_qpair_submit_request returns an error to the caller.
The caller completes failed request but RDMA layer still keeps
it in a send queue. Later RDMA layer can send the corresponding
WR and notify the upper layer about the completion of the request
for the second time.

Change-Id: I1260f215b8523d39157a5cc3fda39cd4bd87c8ec
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1662
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Seth Howell <seth.howell@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2020-05-20 12:03:50 +00:00
..
Makefile nvme/rdma: Use RDMA provider API to create/destroy qpair 2020-05-20 12:03:50 +00:00
nvme_ctrlr_cmd.c nvme: save separate metadata size to nvme request 2020-04-02 07:02:38 +00:00
nvme_ctrlr_ocssd_cmd.c ocssd: hold lock when calling nvme_ctrlr_submit_admin_request 2019-02-15 21:27:58 +00:00
nvme_ctrlr.c nvme/ctrlr: Allow targets not supporting Keep Alive Timer feature ID 2020-05-07 10:41:31 +00:00
nvme_cuse.c lib: replace fprintf(stderr,) by SPDK_ERRLOG 2020-05-07 10:42:40 +00:00
nvme_cuse.h lib/nvme: add RPC for interacting with CUSE devices 2019-10-24 23:43:59 +00:00
nvme_fabric.c nvme: Add the priority field in struct spdk_nvme_transport_id 2020-04-24 15:53:34 +00:00
nvme_internal.h lib/nvme: set in_completion_context in poll group. 2020-04-24 16:36:03 +00:00
nvme_io_msg.c lib/nvme: assign NULL to external_io_msgs ring after free 2020-04-23 20:29:46 +00:00
nvme_io_msg.h lib/nvme: stop all NVMe io producers on detach 2019-11-28 12:36:58 +00:00
nvme_ns_cmd.c nvme: save separate metadata size to nvme request 2020-04-02 07:02:38 +00:00
nvme_ns_ocssd_cmd.c nvme: save separate metadata size to nvme request 2020-04-02 07:02:38 +00:00
nvme_ns.c nvme: Init the status object when tracking the req completion 2020-04-07 08:38:58 +00:00
nvme_opal_internal.h Revert "nvme/opal: deprecate spdk_opal_supported()" 2020-05-11 16:58:03 +00:00
nvme_opal.c Revert "nvme/opal: deprecate spdk_opal_supported()" 2020-05-11 16:58:03 +00:00
nvme_pcie.c nvme/pcie: reduce physically contiguous memory for CQ/SQ 2020-05-18 10:13:56 +00:00
nvme_poll_group.c lib/nvme: switch poll group to use connect/disconnect semantics. 2020-04-22 19:06:26 +00:00
nvme_qpair.c lib/nvme: abort all requests when disconnecting a qpair. 2020-04-22 19:06:26 +00:00
nvme_quirks.c nvme: add quirk for a minimum io queue size 2019-12-13 11:02:04 +00:00
nvme_rdma.c nvme/rdma: Handle failed send/recv as a fatal error 2020-05-20 12:03:50 +00:00
nvme_tcp.c nvme: implement epoll in the tcp transport. 2020-04-24 19:38:00 +00:00
nvme_transport.c Transport: allocate a global array of transports 2020-05-15 08:11:54 +00:00
nvme_uevent.c nvme: add vfio driver parse event 2019-05-29 02:36:41 +00:00
nvme_uevent.h nvme: Add support of hotplug for vfio-attached devices. 2017-12-06 17:04:49 -05:00
nvme.c nvme: Add the priority field in struct spdk_nvme_transport_id 2020-04-24 15:53:34 +00:00
spdk_nvme.map lib/nvme: add a map file. 2020-05-12 21:49:03 +00:00