Spdk/lib/bdev
Jim Harris ed6827edbf bdev: prepopulate per-thread bdev_io cache
This helps prevent starvation in the case where a thread
is started but remains idle, while other threads consume
all of the spdk_bdev_io buffers in the global pool.

This starvation issue is fairly theoretical at this point,
but future patches will be adding the ability for callers
to be notified when an spdk_bdev_io becomes available if
the pool is exhausted.  We will add tests to stress
pool exhaustion at which point this patch will become
much more important.

While here, increase the minimum bdev_io_pool_size to
account for the mgmt_ch getting destroyed and then
immediately created again on the master core.  In this
case there is a window where both channels exist at
once - the one being destroyed won't free its cached
spdk_bdev_ios until the deferred spdk_put_io_channel
event executes.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I3a2fc80bc2bfd78b098bcbfce456d7a433cd64e9

Reviewed-on: https://review.gerrithub.io/415039
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
2018-06-14 14:57:11 +00:00
..
aio thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
error bdev: Rename spdk_internal/bdev.h to spdk/bdev_module.h 2018-05-25 16:02:22 +00:00
gpt thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
iscsi iscsi initiator: remove the deleted variable. 2018-06-14 02:54:27 +00:00
lvol bdev: Rename spdk_internal/bdev.h to spdk/bdev_module.h 2018-05-25 16:02:22 +00:00
malloc thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
null thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
nvme bdev/nvme: remove redundant check for active NS 2018-06-12 19:37:04 +00:00
passthru thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
pmem bdev: Rename spdk_internal/bdev.h to spdk/bdev_module.h 2018-05-25 16:02:22 +00:00
rbd thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
rpc bdev/rpc: make get_bdevs_iostat name param optional 2018-05-25 23:26:59 +00:00
split thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
virtio thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
bdev.c bdev: prepopulate per-thread bdev_io cache 2018-06-14 14:57:11 +00:00
Makefile bdev/pmem: change all NVML strings to PMDK 2018-04-07 00:07:57 -04:00
part.c bdev: Rename spdk_internal/bdev.h to spdk/bdev_module.h 2018-05-25 16:02:22 +00:00
scsi_nvme.c bdev: Rename spdk_internal/bdev.h to spdk/bdev_module.h 2018-05-25 16:02:22 +00:00
vtune.c bdev: disable new GCC 7 warning in VTune code 2018-03-19 15:58:15 -04:00