To fix issue: #2484 When unregistering the bdev, will send out the message to each thread to abort all the IOs including IOs from nomem_io queue, need_buf_small queue and need_buf_large queue. The new SPDK_BDEV_STATUS_UNREGISTERING state is newly added to indicate this unregister operation. In this case, the bdev unregister operation becomes the async operation as each thread will be sent the message to abort the IOs and as the last step, it will unregister the required bdev and associted io device. On the other hand, the queued_resets will be handled separately and not aborted in the bdev unregister. New unit test cases are also added: enomem_multi_bdev_unregister: to abort the IO from nomem_io queue during the unregister operation bdev_open_ext_unregister: to handle the events and async operations from the unregister operation Change-Id: Ib1663c0f71ffe87144869cb3a684e18eb956046b Signed-off-by: GangCao <gang.cao@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12573 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 <smatsumoto@nvidia.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> |
||
---|---|---|
.. | ||
bdev_ut.c | ||
Makefile |