numam-spdk/lib/nvmf
Philipp Skadorov fdec444aa8 nvmf/rdma: track requests in any state
Requests that are being put into IBV context are lost when
IBV QP breaks and its SQ drains.

In order to track NVMf/RDMA requests, RDMA QP has been
reworked to track requests at any state with queues of
requests for each state.

This allowed to get rid of a few intermediate queues and
request counters.

A couple of states has been added to track outbound requests
with and without data. They will be used by QP recovery for
freeing resources assigned to outstanding requests.

Change-Id: Ie84207325c38e5bb2c247cd6dcddb82dfad0d503
Signed-off-by: Philipp Skadorov <philipp.skadorov@wdc.com>
Reviewed-on: https://review.gerrithub.io/416878
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2018-07-12 01:02:25 +00:00
..
ctrlr_bdev.c nvmf: Add trace points for the RDMA state machine 2018-06-12 20:01:33 +00:00
ctrlr_discovery.c bdev: Rename spdk_internal/bdev.h to spdk/bdev_module.h 2018-05-25 16:02:22 +00:00
ctrlr.c nvme_spec: add VWC flush broadcast bits (TP 4035) 2018-06-26 22:51:37 +00:00
Makefile build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
nvmf_fc.h NVMF: Fibre Channel Transport API (follow-up) 2018-07-11 20:19:37 +00:00
nvmf_internal.h nvmf: Keep a list of qpairs per poll group 2018-06-20 22:07:24 +00:00
nvmf.c nvmf: give qpair_disconnect an asynchronous api. 2018-07-06 22:49:39 +00:00
rdma.c nvmf/rdma: track requests in any state 2018-07-12 01:02:25 +00:00
request.c thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
subsystem.c nvmf: don't change NN while ctrlrs exist 2018-06-13 21:52:38 +00:00
transport.c nvmf: redundant spdk_nvmf_transport assignment 2018-06-14 17:44:27 +00:00
transport.h nvmf: Remove poll group from controller 2017-12-12 15:01:17 -05:00