lkml.org 
[lkml]   [2021]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 5/8] nvme-fc: avoid race between time out and tear down
    Date
    From: James Smart <jsmart2021@gmail.com>

    To avoid race between time out and tear down, in tear down process,
    first we quiesce the queue, and then delete the timer and cancel
    the time out work for the queue.

    This patch merges the admin and io sync ops into the queue teardown logic
    as shown in the RDMA patch 3017013dcc "nvme-rdma: avoid race between time
    out and tear down". There is no teardown_lock in nvme-fc.

    Signed-off-by: James Smart <jsmart2021@gmail.com>
    CC: Chao Leng <lengchao@huawei.com>
    Tested-by: Daniel Wagner <dwagner@suse.de>
    [dwagner: updated commit id referenced in commit message]
    Reviewed-by: Daniel Wagner <dwagner@suse.de>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    ---
    drivers/nvme/host/fc.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
    index dbb8ad816df8..133b87db4f1d 100644
    --- a/drivers/nvme/host/fc.c
    +++ b/drivers/nvme/host/fc.c
    @@ -2487,6 +2487,7 @@ __nvme_fc_abort_outstanding_ios(struct nvme_fc_ctrl *ctrl, bool start_queues)
    */
    if (ctrl->ctrl.queue_count > 1) {
    nvme_stop_queues(&ctrl->ctrl);
    + nvme_sync_io_queues(&ctrl->ctrl);
    blk_mq_tagset_busy_iter(&ctrl->tag_set,
    nvme_fc_terminate_exchange, &ctrl->ctrl);
    blk_mq_tagset_wait_completed_request(&ctrl->tag_set);
    @@ -2510,6 +2511,7 @@ __nvme_fc_abort_outstanding_ios(struct nvme_fc_ctrl *ctrl, bool start_queues)
    * clean up the admin queue. Same thing as above.
    */
    blk_mq_quiesce_queue(ctrl->ctrl.admin_q);
    + blk_sync_queue(ctrl->ctrl.admin_q);
    blk_mq_tagset_busy_iter(&ctrl->admin_tag_set,
    nvme_fc_terminate_exchange, &ctrl->ctrl);
    blk_mq_tagset_wait_completed_request(&ctrl->admin_tag_set);
    --
    2.29.2
    \
     
     \ /
      Last update: 2021-08-02 13:28    [W:3.365 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site