Spdk/test
Shuhei Matsumoto 5616c1ed9c bdev: Change split IOV submission from sequential to batch
Large read I/O will be typical in some use cases such as
web stream services. On the other hand, large write I/O
may not be typical but will be sufficiently probable.

Currently when large I/O is submitted to the RAID bdev,
the I/O will be divided by the strip size of it and then
divided I/Os are submitted sequentially.

This patch tries to improve the performance of the RAID bdev
in large I/Os. Besides, when the RAID bdev supports higher
levels of RAID (such as RAID5), it should issue multiple
I/Os to multiple base bdevs by batch fasion in the parity
update. Having experience in batched I/O will be helpful
in the future case too.

In this patch, submit split I/Os by batch until all child IOVs
are consumed or all data are submitted. If all child IOVs are
consumed before all data are submitted, wait until all batched
split I/Os complete and then submit again.

In this patch, test code is added too.

Change-Id: If6cd81cc0c306e3875a93c39dbe4288723b78937
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/424770
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2018-10-10 17:19:32 +00:00
..
app make: simplify rdma dependency linking 2018-09-14 22:56:46 +00:00
bdev Check file permissions in the check_format script 2018-10-04 23:08:12 +00:00
blobfs scripts: use python3 in all scripts 2018-09-14 22:24:30 +00:00
blobstore blobstore: Add tests for bdev_blob_queue_io in blobstore 2018-09-18 16:38:49 +00:00
common Check file permissions in the check_format script 2018-10-04 23:08:12 +00:00
config_converter scripts: add config converter 2018-09-18 15:24:40 +00:00
cpp_headers build: add @: to remaining 'all' targets 2018-02-14 17:38:25 -05:00
env env_dpdk/memory: handle spdk_mem_map_notify_walk() failures 2018-10-05 21:01:27 +00:00
event test/event_perf: use less memory 2018-07-26 05:28:52 +00:00
ioat ioat: remove ioat kperf kernel driver test harness 2018-04-30 17:11:53 +00:00
iscsi_tgt QoS/Bdev: add the RPC support for the bandwidth rate limit 2018-10-09 18:26:44 +00:00
json_config Check file permissions in the check_format script 2018-10-04 23:08:12 +00:00
lvol Check file permissions in the check_format script 2018-10-04 23:08:12 +00:00
nvme CONFIG: add missing CONFIG_ options 2018-10-04 21:31:42 +00:00
nvmf test/nvmf: Expand shutdown test 2018-10-04 22:59:57 +00:00
pmem Check file permissions in the check_format script 2018-10-04 23:08:12 +00:00
spdkcli QoS/Bdev: add the RPC support for the bandwidth rate limit 2018-10-09 18:26:44 +00:00
unit bdev: Change split IOV submission from sequential to batch 2018-10-10 17:19:32 +00:00
vhost test/vhost: test vm booting from vhost controller 2018-10-04 23:27:40 +00:00
Makefile test: move lib/json up to test app directory 2018-03-29 00:31:24 -04:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00