Spdk/test/unit/lib
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
..
bdev bdev: share nomem_io data between bdevs built on the same device 2018-01-18 00:29:46 -05:00
blob blob: add missing callback in spdk_blob_sync_md function 2018-01-17 07:58:57 -05:00
blobfs blobfs, tree: fix a bug in spdk_tree_insert_buffer 2017-08-15 16:36:41 -04:00
event ut/event: add fatal assert for allocation 2017-10-17 11:34:38 -04:00
ioat test: move IOAT library unit test to test/unit 2017-06-21 18:57:35 -04:00
iscsi iscsi: Check CHAP params when a target is created by JSON-RPC 2018-01-17 12:41:29 -05:00
json test/json_util_ut: assert that string is valid 2017-07-12 18:13:23 -04:00
jsonrpc test: remove all uses of strcpy in the code 2017-12-12 17:34:45 -05:00
log log: rename SPDK_TRACE_* to SPDK_LOG_* 2017-12-07 12:23:19 -05:00
lvol blob: change spdk_bs_iter_next parameter to spdk_blob * 2017-12-15 12:28:44 -05:00
nvme nvme: Add support of hot remove vfio-attached devices in pcie layer. 2017-12-19 13:07:20 -05:00
nvmf nvmf/subsystem.c: add checks for valid utf-8 chars: 2018-01-11 10:57:38 -05:00
scsi test/scsi: fix dev.c unit tests 2018-01-17 16:16:09 -05:00
util build: remove $(ENV_CFLAGS) where not necessary 2018-01-03 12:05:59 -05:00
vhost scsi: remove lun name 2018-01-11 18:37:34 -05:00
Makefile lvol: Logical volume implementation 2017-09-14 19:30:54 -04:00