5616c1ed9c
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> |
||
---|---|---|
.. | ||
aio | ||
crypto | ||
error | ||
gpt | ||
iscsi | ||
lvol | ||
malloc | ||
null | ||
nvme | ||
passthru | ||
pmem | ||
raid | ||
rbd | ||
rpc | ||
split | ||
virtio | ||
bdev.c | ||
Makefile | ||
part.c | ||
scsi_nvme.c | ||
vtune.c |