Spdk/lib/nvmf
Seth Howell 37ad7fd3b8 rdma: properly account num_outstanding_data_wr
This value was not being decremented when we got SEND completions for
write operations because we were using the recv send to indicate when we
had completed all writes associated with the request. I also erroneously
made the assumption that spdk_nvmf_rdma_request_parse_sgl would properly
reset this value to zero for all requests. However, for requests that
return SPDK_NVME_DATA_NONE rom spdk_nvmf_rdma_request_get_xfer, this
funxtion is skipped and the value is never reset. This can cause a
coherency issue on admin queues when we request multiple log files. When
the keep_alive request is resent, it can pick up an old rdma_req which
reports the wrong number of outstanding_wrs and it will permanently
increment the qpairs curr_send_depth.

This change decrements num_outstanding_data_wrs on writes, and also
resets that value when the request is freed to ensure that this problem
doesn't occur again.

Change-Id: I5866af97c946a0a58c30507499b43359fb6d0f64
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/443811 (master)
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/447462
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2019-03-08 19:00:44 +00:00
..
ctrlr_bdev.c ctrlr_bdev: change spdk_nvmf_bdev_ctrlr_identify_ns to return void 2018-10-15 17:29:30 +00:00
ctrlr_discovery.c nvmf: Only present subsystem if it is ready 2019-01-07 06:02:26 +00:00
ctrlr.c nvmf: set default KAS value to 10 seconds 2019-01-25 18:52:45 +00:00
Makefile nvme: Add the NVMe over fabrics TCP/IP transport support 2018-11-19 20:36:05 +00:00
nvmf_fc.h lib/nvmf: fix a typo error 2018-10-12 17:40:16 +00:00
nvmf_internal.h nvmf: Add the Keep Alive feature 2019-01-24 04:24:11 +00:00
nvmf.c nvmf: abort I/O from pg queued list when destroying qp 2019-01-24 20:27:21 +00:00
rdma.c rdma: properly account num_outstanding_data_wr 2019-03-08 19:00:44 +00:00
request.c nvmf: add free_req function pointer. 2018-07-27 20:50:36 +00:00
subsystem.c nvmf: save the NSID when adding a new Namespace 2019-01-14 03:35:04 +00:00
tcp.c nvmf/tcp: remove the timeout handling code 2019-01-25 16:38:13 +00:00
transport.c nvmf/transport->add per-pg cache 2019-01-18 16:57:37 +00:00
transport.h nvmf/transport: move buffer_pool to generic struct. 2019-01-17 19:42:01 +00:00