Spdk/module
Xiaodong Liu 195fb4e40e bdev/aio: assign new io-ctx to each io-ch
It aims to avoid bdev starvation by setting separate
io_context to each bdev_aio io channel and link them
into group channel.

Previous, each ch of aio_bdev on a same spdk_thread shares
same io_context. If one of them submits too many IO to the
io_context, then other channels will be starved.
Moreover, if the first bdev_io gets NOMEM error, then the
following IO of this bdev have no chance to get processed.
The bdev_aio starvation can be reproduced by bdevperf in
v20.04, by:
./bdevperf -q 100 -w randwrite -t 5 -c hdd.conf -o 1048576
(hdd.conf defines 2 aio_bdevs of HDD)

Change-Id: Ic709323f5baeb2f8f7250b75ad872ec4156b5e78
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3808
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Community-CI: Broadcom CI
2020-09-15 07:14:18 +00:00
..
accel lib/accel: change task alloc from global mempool->per chan list 2020-08-21 08:25:04 +00:00
bdev bdev/aio: assign new io-ctx to each io-ch 2020-09-15 07:14:18 +00:00
blob lib/bdev: Add spdk_bdev_abort API 2020-06-08 09:28:27 +00:00
blobfs module/blobfs: fix segmentation fault when fuse mount fail 2020-08-21 08:22:25 +00:00
env_dpdk mk/lib: add a check that major and minor version is set for libs. 2020-05-21 09:19:00 +00:00
event lib/nvmf: add synchronization to subsystem state change. 2020-09-15 07:12:54 +00:00
sock sock: enable placement_id configuration in sock layer 2020-09-11 10:04:22 +00:00
Makefile global: rename copy to accel 2020-02-18 08:05:34 +00:00