Spdk/test
Dariusz Stojaczyk 583a24a489 bdev: share nomem_io data between bdevs built on the same device
When there are two bdevs built on the same io_device,
it is possible that one bdev entirely saturates
underlying queue, not letting the second bdev issue
a single I/O. The second bdev will silently fail any
subsequent I/O and append it to the nomem_io list.
However, since we resend I/O only from I/O completion
callback and there's no outstanding I/O for that bdev
(io_outstanding==0), the I/O will never be resent.
It'll be stuck in nomem_io forever.

This patch makes nomem_io list to be shared between
bdevs built on the same device. It is now possible
that I/O completion callback from one bdev will retry
sending I/O from other bdev.

The shared bdev data is based on thread-local
bdev_mgmt_channel, so doesn't need any external
synchronization.

Change-Id: Ia5ac3a1627ce3de4087e43907c329aa7d07ed7c7
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/394658
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ziye Yang <optimistyzy@gmail.com>
2018-01-18 00:29:46 -05:00
..
app stub: fix a io_queue_size limitation 2018-01-11 11:48:06 -05:00
blobfs/rocksdb test/rocksdb: reduce test time for per-patch tests 2017-12-15 15:48:06 -05:00
config test/vm_setup.sh: add missing packages from pkgdep.sh 2017-12-15 16:16:31 -05:00
cpp_headers build: include spdk.app.mk in all app Makefiles 2017-11-15 17:57:07 -05:00
iscsi_tgt iscsi/rpc: Configure Header/Data digest through JSON-RPC 2018-01-17 12:41:29 -05:00
lib blobfs: make the cluster size of blobfs configurable. 2018-01-11 15:50:01 -05:00
lvol test/lvol: update help message 2017-12-28 11:42:56 -05:00
nvmf autotest: Add perf as host with lvol backend and test different qd/io_size test in nightly 2018-01-05 13:08:16 -05:00
pmem bdev/pmem: require name in construct_pmem_bdev RPC 2017-12-04 18:51:14 -05:00
unit bdev: share nomem_io data between bdevs built on the same device 2018-01-18 00:29:46 -05:00
vhost test/vhost: fix typo and increase the sleep time 2018-01-17 17:49:31 -05:00
Makefile test: begin moving unit tests into test/unit 2017-06-16 16:43:48 -04:00
spdk_cunit.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00