Spdk/module/bdev
Ziye Yang c441e27023 bdev/rbd: Do not submit IOs through thread sending.
Currently, we send IOs to the main_td thread.
It is not needed, because all the read/write functions
provided by librbd are thread safe, so we can eliminate the
thread send messaging policy for read/write related functions.

And with this patch, users can observe the load balance
distribution of I/Os on each CPU core owned by spdk applications
through spdk_top tool.

In this patch, we did the following work:

1 Move rbd_open when create the bdev since we will create once.
2 Simplify the channel management.
3 Do not use thread send messaging to do the read/write I/Os.

According to our experiment results showed in
https://github.com/spdk/spdk/issues/2204

There will be more than 15% performance improvment in IOPS aspect
for different write I/O patterns, and it also addresses the I/O Load
balance issues.

Fixes issue: #2204

Change-Id: I9d2851c3d772261c131f9678f4b1bf722328aabb
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17644
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2023-04-27 09:35:04 +00:00
..
aio so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
compress accel: move accel_module.h to include/spdk 2023-04-19 06:36:20 +00:00
crypto accel: move accel_module.h to include/spdk 2023-04-19 06:36:20 +00:00
daos bdev/daos: using SPDK_CONTAINEROF instead of container_of 2023-04-25 10:10:48 +00:00
delay bdev/delay: add uuid option 2023-03-08 08:46:16 +00:00
error bdev/error: add option to provide UUID for error bdev 2023-04-13 12:12:58 +00:00
ftl module/bdev: Use error_response() rather than bool_response(false) for JSON RPCs 2023-01-31 21:40:09 +00:00
gpt bdev_gpt: add new SPDK partition type for off-by-one fix 2023-01-24 17:19:35 +00:00
iscsi bdev/iscsi: fix use-after-free in bdev_iscsi_command_cb() 2023-03-16 07:24:56 +00:00
lvol vbdev_lvol: allow degraded lvols to be deleted 2023-04-26 17:32:13 +00:00
malloc bdev/malloc: report accel sequence support 2023-04-19 06:36:20 +00:00
null bdev: delete UUID generation from ephemeral bdevs 2023-04-13 12:12:58 +00:00
nvme bdev_nvme: fix heap-use-after-free when detaching controller 2023-04-24 09:20:33 +00:00
ocf bdev/ocf: Update OCF to 22.6.1 2023-04-06 14:40:39 +00:00
passthru bdev: remove spdk_bdev_ext_io_opts from spdk_bdev_io 2023-02-16 10:09:35 +00:00
raid module/raid: specify memory domain support per raid module 2023-04-17 09:36:34 +00:00
rbd bdev/rbd: Do not submit IOs through thread sending. 2023-04-27 09:35:04 +00:00
split so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
uring include: add libgen.h to stdinc.h 2023-04-26 17:32:13 +00:00
virtio so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
xnvme bdev/xnvme: Use bdev_unregister_by_name() to delete a xnvme bdev 2023-01-31 21:40:09 +00:00
zone_block module/bdev: Use error_response() rather than bool_response(false) for JSON RPCs 2023-01-31 21:40:09 +00:00
Makefile bdev/pmem: Removed bdev pmem implementation 2023-03-09 09:21:23 +00:00