numam-spdk/lib/nvmf
Alexey Marchuk 53777de855 rdma: Unset IBV_SEND_SIGNALED flag for RDMA_WRITE operations
Unsetting this flag will decrease the number of WRs retrieved during CQ polling and will decrease
the oeverall processing time. Since RDMA_WRITE operations are always paired with RDMA_SEND (response),
it is possible to track the number of outstanding WRs relying on the completed response WR.
Completed WRs of type RDMA_WR_TYPE_DATA are now always RDMA_READ operations.

The patch shows %2 better peformance for read operations on x86 machine. The performance was measured using perf with the following parameters:
-q 16 -o 4096 -w read -t 300 -c 2
with nvme null device, each measurement was done 4 times

avg IOPS (with patch): 865861.71
avg IOPS (master): 847958.77

avg latency (with patch): 18.46 [us]
avg latency (master): 18.85 [us]

Change-Id: Ifd3329fbd0e45dd5f27213b36b9444308660fc8b
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Signed-off-by: Sasha Kotchubievsky <sashakot@mellanox.com>
Signed-off-by: Evgenii Kochetov <evgeniik@mellanox.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/456469
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Seth Howell <seth.howell5141@gmail.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-06-11 18:07:28 +00:00
..
ctrlr_bdev.c nvmf: disable the protection if the backend doesn't contain valid type 2019-04-24 21:47:18 +00:00
ctrlr_discovery.c nvmf: Only present subsystem if it is ready 2019-01-07 06:02:26 +00:00
ctrlr.c nvmf: complete all I/Os before changing sgroup to PAUSED 2019-06-11 01:51:56 +00:00
Makefile nvmf: Collapse request.c into ctrlr.c 2019-02-04 18:11:33 +00:00
nvmf_fc.h lib/nvmf: fix a typo error 2018-10-12 17:40:16 +00:00
nvmf_internal.h nvmf: complete all I/Os before changing sgroup to PAUSED 2019-06-11 01:51:56 +00:00
nvmf.c nvmf: complete all I/Os before changing sgroup to PAUSED 2019-06-11 01:51:56 +00:00
rdma.c rdma: Unset IBV_SEND_SIGNALED flag for RDMA_WRITE operations 2019-06-11 18:07:28 +00:00
subsystem.c subsystem: check for NULL bufs in reservation ops. 2019-04-25 22:52:12 +00:00
tcp.c nvmf/tcp: Support single r2t usage 2019-06-05 16:46:55 +00:00
transport.c nvmf: remove unnecessary size checks when creating transport 2019-05-02 14:44:57 +00:00
transport.h nvmf: Remove qpair_is_idle 2019-03-15 19:19:17 +00:00