Spdk/test/unit/lib
Jim Harris bd16f57472 blob: switch to bit_pool for tracking used_clusters
We still need to be able to explicitly set specific
bits in the cluster array during initialization and
loading (especially recovery), so we use a bit_array
during load, and then convert it to a bit_pool just
before calling the user's cmopletion callback.

This gives a roughly 300% improvement over baseline
on a benchmark which does continuous resize operations.
The benefit is primarily from saving the lowest free
bit rather than having to always start at bit 0.  We
may be able to further improve this by saving extents
in the bit pool as well, although after this patch,
the benchmark shows other hot spots different from the
bit search.

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

Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3975
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2020-09-15 07:12:44 +00:00
..
bdev bdev/nvme: add a function for specifying a multipath trid. 2020-08-07 15:06:01 +00:00
blob blob: switch to bit_pool for tracking used_clusters 2020-09-15 07:12:44 +00:00
blobfs module/blobfs: remove spdk prefix from static/internal functions. 2020-05-18 09:48:18 +00:00
event lib/event: remove _spdk prefix from functions. 2020-05-27 07:35:02 +00:00
ftl lib/ftl: Keep tracing functions under define flag 2020-06-05 09:03:31 +00:00
idxd lib/idxd: add unit test for idxd_wq_config() 2020-04-23 15:48:32 +00:00
ioat ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
iscsi lib/iscsi: Make max outstanding R2Ts per connection configurable 2020-08-18 07:27:45 +00:00
json lib: json-nbd remove spdk prefix from static functions. 2020-05-21 09:19:00 +00:00
jsonrpc lib/jsonrpc: remove spdk_ prefix from internal functions. 2020-05-11 12:29:07 +00:00
log log: spdk_log_dump more characters than required 2020-04-14 11:34:45 +00:00
lvol lvol: let thin_provision flag be consistent with Blob 2020-05-22 10:42:28 +00:00
notify ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
nvme nvme: add initial namespace types support 2020-09-11 07:29:51 +00:00
nvmf lib/nvmf: Control I/O and some admin commands according to ANA state 2020-09-04 08:14:18 +00:00
reduce test: add generic unlink wrapper 2020-05-06 12:43:57 +00:00
scsi UT/scsi_reserve: add Persistent Reserve with SPC2 RESERVE/RELEASE test case 2020-06-25 07:16:08 +00:00
sock ut/sock: Add get/set_opts unit tests for posix sockets 2020-06-02 09:48:00 +00:00
thread lib/thread: remove _spdk prefix. 2020-06-01 13:07:30 +00:00
util cpuset: fix parse_mask 2020-08-27 08:34:07 +00:00
vhost lib/vhost: remove dependency on lib/event 2020-05-13 07:47:01 +00:00
json_mock.c subsystem: add per module configuration dump 2018-03-23 02:47:40 -04:00
Makefile lib/idxd: add unit test framework and first unit test 2020-04-23 15:48:32 +00:00