Spdk/lib
Jiewei Ke e45450d28f thread: spdk_get_io_channel() use i->dev as the search key
In current implementation, io_channel list will be accessed by
spdk_for_each_channel() and spdk_get_io_channel(). We will try to
accelerate spdk_get_io_channel() in the following change "thread: speed
up io_channel lookup by using rbtree" by changing io_channel from list
into RB tree.

To make it cleaner, we prefer to use ch->dev as the key for the
io_channel RB tree instead of ch->dev->io_device. This patch makes
spdk_for_each_channel() use the i->dev to find the expected io_channel.
And the io_device in structure spdk_io_channel_iter is not needed in
spdk_for_each_channel_continue() but we keep it for the compatibility of
spdk_io_channel_iter_get_io_device().

After this patch, spdk_for_each_channel() has to access both io_device
list and io_channel list, and spdk_for_each_channel_continue() still has
to access only io_channel list.

Both io_device list and io_channel list will become RB tree. Hence
performance degradation will be negligible. spdk_for_each_channel() is
not so performance critical than spdk_get_io_channel().

Signed-off-by: Jiewei Ke <jiewei@smartx.com>
Change-Id: Idd486b0aa1b63b57ede90527dcd1631cbb008a1a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8749
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2021-07-16 07:11:53 +00:00
..
accel lib/accel: have accel and idxd engine use task->crc_dst 2021-07-15 21:04:08 +00:00
bdev bdev: Hold mutex while removing name from name tree 2021-07-12 15:30:39 +00:00
blob util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
blobfs lib/trace: record string arguments as (const char *) 2021-06-28 16:17:35 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
env_dpdk configure: Build against installed DPDK instance 2021-06-29 18:17:43 +00:00
env_ocf lib/thead: print error log when create mempool or ring failed 2020-11-05 09:41:06 +00:00
event App: update the usage function for the core list usage 2021-07-15 07:16:16 +00:00
ftl lib/trace: don't format arg's name while registering a tpoint 2021-06-10 10:58:05 +00:00
idxd lib/idxd: change how we complete batch desc 2021-07-15 21:04:08 +00:00
init util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi net: Remove library 2021-07-13 08:57:58 +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 lib/nbd: fix conflict between nbd start and stop 2021-07-14 10:02:35 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
nvmf nvme: map PRP and SGL lists RO 2021-07-13 16:53:42 +00:00
rdma include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
reduce util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
rocksdb Fix Rocksdb db_bench build's Linker issue. 2021-07-13 08:59:24 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
sock net: Remove library 2021-07-13 08:57:58 +00:00
thread thread: spdk_get_io_channel() use i->dev as the search key 2021-07-16 07:11:53 +00:00
trace trace: fix the snprintf warning issue. 2021-07-12 14:06:43 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
vfio_user libvfio-user: update submodule 2021-06-22 23:42:02 +00:00
vhost vhost-blk: use device name for VIRTIO_BLK_T_GET_ID 2021-05-27 07:35:37 +00:00
virtio env: only pass failing address to spdk_pci_error_handler 2021-06-15 08:34:28 +00:00
vmd so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
Makefile net: Remove library 2021-07-13 08:57:58 +00:00