numam-spdk/lib
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
..
bdev bdev: prepopulate per-thread bdev_io cache 2018-06-14 14:57:11 +00:00
blob blob: add metadata dump capability 2018-06-12 16:36:04 +00:00
blobfs thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
conf conf: don't strdup name if section already exist 2018-05-17 17:13:19 +00:00
copy copy/ioat: Add scan_ioat_copy_engine RPC 2018-06-14 03:54:42 +00:00
cunit include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
env_dpdk env: add size parameter to spdk_mem_map_translate 2018-06-05 18:36:00 +00:00
event bdev: add set_bdev_options RPC 2018-06-14 14:57:11 +00:00
ioat scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
iscsi iscsi: Refactor a few of loop and branch and remove unnecessary initialization 2018-06-14 03:35:28 +00:00
json json: Add spdk_json_decode_uint16 2018-06-05 21:30:02 +00:00
jsonrpc jsonrpc: fix closed connection hadling 2018-06-08 18:11:18 +00:00
log app: reword -t option help string 2018-06-11 23:37:11 +00:00
lvol thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
nbd thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
net rpc: Add state_mask to each RPC method to make sets of RPCs 2018-05-03 19:48:15 +00:00
nvme nvme/rdma: add timeout support to RDMA transport 2018-06-14 03:56:07 +00:00
nvmf nvmf: add JSON config dump 2018-06-13 23:33:02 +00:00
rocksdb thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
rpc rpc: Add option to get_rpc_methods RPC to output only currently usable RPCs 2018-05-04 17:45:48 +00:00
scsi thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
thread thread: add spdk_thread_get_count() 2018-06-13 00:38:41 +00:00
trace app,lib: fix checking mmap return value 2018-03-30 16:18:34 -04:00
ut_mock test/mock: add pthread_self 2017-09-19 17:15:15 -04:00
util thread: Move threading abstraction code out of util 2018-06-12 15:24:07 +00:00
vhost thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
virtio virtio: merge contiguous memory regions 2018-06-01 20:14:32 +00:00
Makefile thread: Move threading abstraction code out of util 2018-06-12 15:24:07 +00:00