Spdk/module/bdev
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
..
aio bdev/aio: assign new io-ctx to each io-ch 2020-09-15 07:14:18 +00:00
compress bdev/compress: rename RPC to match standard naming 2020-09-14 09:19:19 +00:00
crypto bdev/crypto: Stop access bdev_io->internal from bdev module and fix an issue 2020-05-21 09:19:23 +00:00
delay bdev/delay: Return poller status based on completions number 2020-07-08 07:54:38 +00:00
error lib and module: remove remaining _spdk prefixes. 2020-06-01 13:07:30 +00:00
ftl mk/lib: add a check that major and minor version is set for libs. 2020-05-21 09:19:00 +00:00
gpt bdev/gpt: Change ERRLOG to DEBUGLOG to show interleaved metadata is not supported 2020-09-04 15:12:48 +00:00
iscsi pollers: Fix pollers to return correct busy status 2020-07-07 07:29:31 +00:00
lvol lvol: report io_unit_size as block_size instead of page size 2020-07-17 07:20:14 +00:00
malloc lib/accel: remove the need for the app to allocate an accel_task 2020-07-24 19:38:46 +00:00
null bdev/null: make md_size inclusive for dif_type 2020-08-31 07:47:48 +00:00
nvme module/bdev_rpc: modify detach_ctrlr rpc to accept trid. 2020-08-11 08:29:14 +00:00
ocf bdev/ocf: add cache line size 2020-08-12 10:39:56 +00:00
passthru bdev/passthru: Support I/O type ABORT 2020-06-09 07:37:29 +00:00
pmem mk/lib: add a check that major and minor version is set for libs. 2020-05-21 09:19:00 +00:00
raid module/bdev_raid: remove an ERROR log which occurs every times 2020-08-25 08:02:37 +00:00
rbd bdev/rbd: Still use rbd_aio_read/write if iovcnt=1 2020-09-11 07:29:20 +00:00
rpc mk/lib: add a check that major and minor version is set for libs. 2020-05-21 09:19:00 +00:00
split mk/lib: add a check that major and minor version is set for libs. 2020-05-21 09:19:00 +00:00
uring bdev/uring: Do not use IORING_SETUP_IOPOLL. 2020-08-04 18:27:56 +00:00
virtio virtio: fix scsi double free issue 2020-07-30 08:43:23 +00:00
zone_block mk/lib: add a check that major and minor version is set for libs. 2020-05-21 09:19:00 +00:00
Makefile bdev/ftl: Remove NVMe dependencies 2020-01-15 12:24:44 +00:00