Spdk/test/unit/lib/bdev
Shuhei Matsumoto 9ddaadf2a5 bdev/nvme: Retry admin passthru a second later if any ctrlr may become available
When resetting ctrlr, adminq is disconnected first. If adminq is disconnected,
admin passthrough request is rejected with -ENXIO.

But resetting ctrlr may succeed. If resetting ctrlr succeeds, adminq is
connected again, and admin passthrough request will be
submitted successfully.

On the other hand, if ctrlr is failed, admin passthrough request is
rejected with -ENXIO. But when resetting ctrlr, ctrlr is set to unfailed.

Hence bdev_nvme_admin_passthru() skips any ctrlr which is resetting
or failed, and calls bdev_nvme_admin_passthru_complete() with -ENXIO
if no available ctrlr is found.

bdev_nvme_admin_passthru_complete() queues admin passthrough request
and retry it one second later if ctrlr is resetting.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Ic748dc4faf29ebf717ae5c29dcf7c55fe2ea9243
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9942
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: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
2022-06-30 13:32:28 -04:00
..
bdev_zone.c bdev/zone: add support for get zone id 2022-06-30 13:32:27 -04:00
bdev.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
compress.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
crypto.c modules/crypto: remove dependency on rte_cryptodev_pmd.h 2022-06-30 13:32:25 -04:00
gpt test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
mt test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme bdev/nvme: Retry admin passthru a second later if any ctrlr may become available 2022-06-30 13:32:28 -04:00
part.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
pmem lib/bdev: added spdk_bdev_module_fini_done() 2021-08-23 08:49:56 +00:00
raid test/unit/raid: fix set-but-not-used error 2022-06-30 13:32:27 -04:00
scsi_nvme.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
vbdev_lvol.c bdev/lvol: unload empty lvs during fini_start 2021-08-23 08:49:56 +00:00
vbdev_zone_block.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
Makefile ut/bdev_ocssd: Move bdev_ocssd_ut from bdev directory to bdev/nvme directory 2021-02-09 11:29:53 +00:00