Spdk/module/bdev/nvme
Shuhei Matsumoto 5863f95ae4 bdev/nvme: Submit abort command for admin command on the current thread
Previously only a single thread could submit abort commands for admin
commands and it was the thread of the corresponding controller.

When we support multipath, we need to traverse the list of controllers
to which the target admin command is submitted. Threads of controllers
may be different.

On the other hand, the previous implementation made the I/O flow very
clean, but the I/O flow will not be clean if there are many controllers
and the subsystem does not have its thread.

This patch changes the policy so that any SPDK thread can submit abort
commands for admin commands.

Then when multipath is supported, we will be able to traverse the
list of controllers simply on the current thread to abort either I/O
command or admin command.

We already are able to submit any admin command on any thread anytime
including abort command. Hence this will not cause any issue.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Ib69de33f2e84b03861c7d95ce060035bdb589e4b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8121
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2021-06-02 11:37:58 +00:00
..
bdev_nvme_cuse_rpc.c lib/jsonrpc: Add a new API to send response for writing bool result. 2020-11-16 15:08:47 +00:00
bdev_nvme_rpc.c bdev/nvme: respond to attach RPC after bdev is examined 2021-05-13 10:07:07 +00:00
bdev_nvme.c bdev/nvme: Submit abort command for admin command on the current thread 2021-06-02 11:37:58 +00:00
bdev_nvme.h bdev/nvme: Merge bdev_nvme_remove_trid() into bdev_nvme_delete() 2021-03-12 08:20:46 +00:00
bdev_ocssd_rpc.c bdev/ocssd: Remove range parameter from bdev_ocssd_create RPC 2021-02-19 11:28:53 +00:00
bdev_ocssd.c bdev/nvme: Remove nvme_ns->ref and use nvme_ns->populated and nvme_ns->bdev instead 2021-04-08 16:10:26 +00:00
bdev_ocssd.h bdev/ocssd: Remove range from struct ocssd_bdev 2021-02-24 13:01:44 +00:00
common.c bdev/nvme: Factor out deleting nvme_bdev_ctrlr into a helper function 2021-04-08 16:10:26 +00:00
common.h bdev/nvme: Inline nvme_bdev_to_bdev_ns() and remove it 2021-06-02 11:37:58 +00:00
Makefile so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme_rpc.c bdev/nvme: Fix the RPC bdev_nvme_send_cmd to pass the registered io_device, nvme_bdev_ctrlr, correctly to get io_channel 2021-03-18 14:41:13 +00:00
vbdev_opal_rpc.c lib/jsonrpc: Add a new API to send response for writing bool result. 2020-11-16 15:08:47 +00:00
vbdev_opal.c bdev/nvme: Inline nvme_bdev_ns_to_bdev() and remove it 2021-04-08 16:10:26 +00:00
vbdev_opal.h module/bdev_nvme: remove spdk prefix from static/internal functions. 2020-05-15 07:58:03 +00:00