All of lore.kernel.org
 help / color / mirror / Atom feed
From: Himanshu Madhani <himanshu.madhani@oracle.com>
To: Daniel Wagner <dwagner@suse.de>
Cc: "linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
	open list <linux-kernel@vger.kernel.org>,
	Hannes Reinecke <hare@suse.de>, Sagi Grimberg <sagi@grimberg.me>,
	Keith Busch <kbusch@kernel.org>, Ming Lei <ming.lei@redhat.com>,
	Wen Xiong <wenxiong@us.ibm.com>,
	James Smart <jsmart2021@gmail.com>,
	Chao Leng <lengchao@huawei.com>
Subject: Re: [PATCH v7 2/3] nvme-fc: avoid race between time out and tear down
Date: Tue, 14 Sep 2021 13:54:04 +0000	[thread overview]
Message-ID: <5A104918-0FDD-47A7-A667-7071AB2AEBA9@oracle.com> (raw)
In-Reply-To: <20210914092008.40370-3-dwagner@suse.de>



> On Sep 14, 2021, at 4:20 AM, Daniel Wagner <dwagner@suse.de> wrote:
> 
> 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>
> 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 b5d9a5507de5..6ebe68396712 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
> 

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>

--
Himanshu Madhani	 Oracle Linux Engineering


WARNING: multiple messages have this Message-ID (diff)
From: Himanshu Madhani <himanshu.madhani@oracle.com>
To: Daniel Wagner <dwagner@suse.de>
Cc: "linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
	open list <linux-kernel@vger.kernel.org>,
	Hannes Reinecke <hare@suse.de>, Sagi Grimberg <sagi@grimberg.me>,
	Keith Busch <kbusch@kernel.org>, Ming Lei <ming.lei@redhat.com>,
	Wen Xiong <wenxiong@us.ibm.com>,
	James Smart <jsmart2021@gmail.com>,
	Chao Leng <lengchao@huawei.com>
Subject: Re: [PATCH v7 2/3] nvme-fc: avoid race between time out and tear down
Date: Tue, 14 Sep 2021 13:54:04 +0000	[thread overview]
Message-ID: <5A104918-0FDD-47A7-A667-7071AB2AEBA9@oracle.com> (raw)
In-Reply-To: <20210914092008.40370-3-dwagner@suse.de>



> On Sep 14, 2021, at 4:20 AM, Daniel Wagner <dwagner@suse.de> wrote:
> 
> 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>
> 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 b5d9a5507de5..6ebe68396712 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
> 

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>

--
Himanshu Madhani	 Oracle Linux Engineering


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  reply	other threads:[~2021-09-14 13:54 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-14  9:20 [PATCH v7 0/3] Handle update hardware queues and queue freeze more carefully Daniel Wagner
2021-09-14  9:20 ` Daniel Wagner
2021-09-14  9:20 ` [PATCH v7 1/3] nvme-fc: Update hardware queues before using them Daniel Wagner
2021-09-14  9:20   ` Daniel Wagner
2021-09-14 13:52   ` Himanshu Madhani
2021-09-14 13:52     ` Himanshu Madhani
2021-09-14  9:20 ` [PATCH v7 2/3] nvme-fc: avoid race between time out and tear down Daniel Wagner
2021-09-14  9:20   ` Daniel Wagner
2021-09-14 13:54   ` Himanshu Madhani [this message]
2021-09-14 13:54     ` Himanshu Madhani
2021-09-14  9:20 ` [PATCH v7 3/3] nvme-fc: Remove freeze/unfreeze around update_nr_hw_queues Daniel Wagner
2021-09-14  9:20   ` Daniel Wagner
2021-09-14 10:58   ` Hannes Reinecke
2021-09-14 10:58     ` Hannes Reinecke
2021-09-14 13:55   ` Himanshu Madhani
2021-09-14 13:55     ` Himanshu Madhani
2021-09-15  0:08   ` Ming Lei
2021-09-15  0:08     ` Ming Lei
2021-09-21  7:04 ` [PATCH v7 0/3] Handle update hardware queues and queue freeze more carefully Christoph Hellwig
2021-09-21  7:04   ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5A104918-0FDD-47A7-A667-7071AB2AEBA9@oracle.com \
    --to=himanshu.madhani@oracle.com \
    --cc=dwagner@suse.de \
    --cc=hare@suse.de \
    --cc=jsmart2021@gmail.com \
    --cc=kbusch@kernel.org \
    --cc=lengchao@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=ming.lei@redhat.com \
    --cc=sagi@grimberg.me \
    --cc=wenxiong@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.