Spdk/test
Shuhei Matsumoto 4e9adb3bf9 thread: Replace TAILQ by Red Black tree for timed pollers
Use the macros for red black tree provided by Free BSD to manage
timed pollers efficiently.

Allow RB_INSERT() to insert elements with duplicated keys by changing
the compare function to return 1 if two keys are equal.

Check the return code of RB_INSERT() because this is the first use case
for RB tree macros in SPDK. We did the same for RB_REMOVE() by
adding another temporary variable but we remove it from this patch
because it is not so important compared with RB_INSERT().

When a timed poller is inserted, update the cache for the closest (leftmost)
timed poller only if the tree was empty before or the closest (leftmost)
timed poller was actually changed. We do not have to use RB_MIN()
because all duplicated entries are inserted on the right side.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Ibe253ca8eecc10116548b5eedbcdba8fb961b88d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7722
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
2021-05-20 15:13:27 +00:00
..
accel_engine accel_engine test: Add the test case for accel_engine. 2021-01-21 15:49:40 +00:00
app lib/iscsi: Pass the range (offset and length) to iscsi_conn_read_data_segment() 2021-02-23 08:52:20 +00:00
bdev bdevperf: add -F option for zipf distribution 2021-05-19 07:50:28 +00:00
blobfs test: add bdev_wait_for_examine to static JSON configs 2021-05-13 10:07:07 +00:00
blobstore scheduler: Change main core frequency dynamically 2021-01-22 18:31:25 +00:00
common test/nvme: Add test application to verify Simple Copy Command support 2021-05-18 12:43:24 +00:00
compress test/nvmf: use recommended nvmf_create_subsystem rpc 2021-05-20 15:00:22 +00:00
config_converter scripts/config_converter: skip sections not present in legacy config 2021-01-15 08:32:10 +00:00
cpp_headers queue_extras: use SPDK_CONTAINEROF 2019-10-07 15:06:01 +00:00
dd test: add bdev_wait_for_examine to static JSON configs 2021-05-13 10:07:07 +00:00
dpdk_memory_utility build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
env Revert "env: Register external memory with DPDK" 2021-04-15 20:22:26 +00:00
event perf: remove unused g_tsc_us_rate. 2021-04-15 11:25:21 +00:00
external_code include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
ftl scripts: replace PCI_WHITELIST with PCI_ALLOWED 2020-12-03 09:41:07 +00:00
fuzz test/iscsi: remove VPP tests 2020-08-17 08:19:46 +00:00
interrupt test: add functional test for reactor_set_intr 2021-04-29 07:10:26 +00:00
ioat build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
iscsi_tgt bdev/rbd: Revise bdev_rbd_create rpc function. 2021-05-19 08:08:39 +00:00
json_config test/json_config: Fix json_config test fail for multiple nvme disk config 2021-05-18 12:44:35 +00:00
lvol test/lvol: rename lvol test script 2020-10-20 08:54:53 +00:00
make examples/identify: Identification of Simple Copy Command support 2021-05-11 12:04:54 +00:00
nvme test/nvme: Add test application to verify Simple Copy Command support 2021-05-18 12:43:24 +00:00
nvmf test/nvmf: use recommended nvmf_create_subsystem rpc 2021-05-20 15:00:22 +00:00
ocf test: add bdev_wait_for_examine to static JSON configs 2021-05-13 10:07:07 +00:00
openstack test/openstack: retry git clone when failed 2021-03-08 10:48:36 +00:00
pmem build: Output executables from the app directory to build/bin 2020-06-15 15:27:16 +00:00
rpc autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
rpc_client build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
rpc_plugins autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
scheduler subsystem/nvmf: remove cpu_mask hint when creating poll group 2021-05-11 11:49:52 +00:00
setup test/setup: fix failure in allowed() when there is only one device 2021-04-27 08:36:35 +00:00
spdkcli autotest.sh: call rdma_device_init only for RDMA tests 2021-03-29 07:34:38 +00:00
unit thread: Replace TAILQ by Red Black tree for timed pollers 2021-05-20 15:13:27 +00:00
vhost test: add bdev_wait_for_examine to static JSON configs 2021-05-13 10:07:07 +00:00
vmd test: replace VMD_WHITELIST with VMD_ALLOWED 2020-12-03 09:41:07 +00:00
Makefile build: add option to disable building unit tests 2020-03-10 09:12:21 +00:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00