Spdk/lib
Tomasz Zawadzki ceaa0c7fa9 lib/blob: complete multiple persists
When blob persist starts, there can already be multiple
of such requests pending. It is possible to complete
a set of persists at once, if blob state after their
execution would be the same. This is the case when
persists are already pending when a particular persist
request is started.

This patch implements such mechanism by introducing
persists_to_complete queue, containing entries that
were previously queued up before starting the current
persist request. If there are any entries in this queue,
further requests are put into pending_persists.

When first request from persists_to_complete is persisted,
completions are issued for all requests on that queue at once.
If at that point there are any new entries on pending_persists,
all of them are put into persists_to_complete. Persist process is started
again with the first request from that queue.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I10063e55d6f821b1863de016d3148da6a719a422
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7643
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2021-05-24 10:08:00 +00:00
..
accel lib/accel: Add the missed seed assignment for chain crc32c support. 2021-05-10 11:14:37 +00:00
bdev bdev: remove all references to spdk_bdev_open 2021-05-20 15:02:59 +00:00
blob lib/blob: complete multiple persists 2021-05-24 10:08:00 +00:00
blobfs so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
env_dpdk spdk_zmalloc: Remove unnecessary memset() 2021-05-11 11:49:06 +00:00
env_ocf lib/thead: print error log when create mempool or ring failed 2020-11-05 09:41:06 +00:00
event event/reactor: fix bug when showing core state 2021-05-18 12:44:02 +00:00
ftl lib/ftl: Drain retry queue before shutdown 2021-05-14 10:05:34 +00:00
idxd lib/idxd: move the crc destination * from the desc to comp record 2021-05-22 18:42:35 +00:00
ioat so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
iscsi iscsi: use SPDK_TRACE_ARG_TYPE #defines 2021-05-07 11:35:38 +00:00
json so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
jsonrpc jsonrpc: use SOCK_NONBLOCK in socket() calls 2021-05-05 13:31:10 +00:00
log so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
lvol so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nbd nbd: use SOCK_NONBLOCK with socketpair() call 2021-05-05 13:31:10 +00:00
net net: deprecate library 2021-04-26 06:55:03 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme/ctrlr: Always access namespaces via getter function 2021-05-20 15:17:41 +00:00
nvmf nvmf: support NVME ACRE feature 2021-05-20 15:18:52 +00:00
rdma include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
reduce so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
rocksdb build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi scsi: Cache physical block size locally 2021-05-11 11:59:31 +00:00
sock sock: Add new params to configure zcopy for server, client sockets 2021-04-27 08:13:32 +00:00
thread thread: Replace TAILQ by Red Black tree for timed pollers 2021-05-20 15:13:27 +00:00
trace so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util util: add zipf random number generator 2021-05-17 11:29:52 +00:00
vfio_user libvfio-user: update submodule 2021-05-21 03:01:21 +00:00
vhost vhost-blk: add set interrupt mode to poller 2021-04-23 18:09:54 +00:00
virtio virtio_blk: add hotplug support 2021-04-16 19:21:13 +00:00
vmd so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
Makefile NVMe/vfio-user: add initial version vfio-user transport to NVMe driver 2021-01-21 05:00:18 +00:00