From: hch@lst.de (Christoph Hellwig)
Subject: [PATCH 3/5] nvme-rdma: Make sure to shutdown the controller if we can
Date: Mon, 1 Aug 2016 13:04:46 +0200 [thread overview]
Message-ID: <20160801110446.GD16141@lst.de> (raw)
In-Reply-To: <1469822242-3477-4-git-send-email-sagi@grimberg.me>
On Fri, Jul 29, 2016@10:57:20PM +0300, Sagi Grimberg wrote:
> Relying on ctrl state in nvme_rdma_shutdown_ctrl is wrong because
> it will never be NVME_CTRL_LIVE (delete_ctrl or reset_ctrl invoked it).
>
> Instead, check that the admin queue is connected. Note that it is safe
> because we can never see a copmeting thread trying to destroy the admin
> queue (reset or delete controller).
>
> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> ---
> drivers/nvme/host/rdma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
> index a70eb3cbf656..641ab7f91899 100644
> --- a/drivers/nvme/host/rdma.c
> +++ b/drivers/nvme/host/rdma.c
> @@ -1644,7 +1644,7 @@ static void nvme_rdma_shutdown_ctrl(struct nvme_rdma_ctrl *ctrl)
> nvme_rdma_free_io_queues(ctrl);
> }
>
> - if (ctrl->ctrl.state == NVME_CTRL_LIVE)
> + if (test_bit(NVME_RDMA_Q_CONNECTED, &ctrl->queues[0].flags))
> nvme_shutdown_ctrl(&ctrl->ctrl);
>
> blk_mq_stop_hw_queues(ctrl->ctrl.admin_q);
Maybe the right way to handle this is to unconditionally call
nvme_shutdown_ctrl and make sure we return an early error
on the register write?
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
To: Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
Cc: linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Steve Wise
<swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>,
Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>,
Jay Freyensee
<james_p_freyensee-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
Subject: Re: [PATCH 3/5] nvme-rdma: Make sure to shutdown the controller if we can
Date: Mon, 1 Aug 2016 13:04:46 +0200 [thread overview]
Message-ID: <20160801110446.GD16141@lst.de> (raw)
In-Reply-To: <1469822242-3477-4-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
On Fri, Jul 29, 2016 at 10:57:20PM +0300, Sagi Grimberg wrote:
> Relying on ctrl state in nvme_rdma_shutdown_ctrl is wrong because
> it will never be NVME_CTRL_LIVE (delete_ctrl or reset_ctrl invoked it).
>
> Instead, check that the admin queue is connected. Note that it is safe
> because we can never see a copmeting thread trying to destroy the admin
> queue (reset or delete controller).
>
> Signed-off-by: Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
> ---
> drivers/nvme/host/rdma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
> index a70eb3cbf656..641ab7f91899 100644
> --- a/drivers/nvme/host/rdma.c
> +++ b/drivers/nvme/host/rdma.c
> @@ -1644,7 +1644,7 @@ static void nvme_rdma_shutdown_ctrl(struct nvme_rdma_ctrl *ctrl)
> nvme_rdma_free_io_queues(ctrl);
> }
>
> - if (ctrl->ctrl.state == NVME_CTRL_LIVE)
> + if (test_bit(NVME_RDMA_Q_CONNECTED, &ctrl->queues[0].flags))
> nvme_shutdown_ctrl(&ctrl->ctrl);
>
> blk_mq_stop_hw_queues(ctrl->ctrl.admin_q);
Maybe the right way to handle this is to unconditionally call
nvme_shutdown_ctrl and make sure we return an early error
on the register write?
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-08-01 11:04 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-29 19:57 [PATCH 0/5] Some fabrics fixes Sagi Grimberg
2016-07-29 19:57 ` Sagi Grimberg
2016-07-29 19:57 ` [PATCH 1/5] nvme-rdma: Fix device removal handling Sagi Grimberg
2016-07-29 19:57 ` Sagi Grimberg
2016-08-01 11:00 ` Christoph Hellwig
2016-08-01 11:00 ` Christoph Hellwig
2016-07-29 19:57 ` [PATCH 2/5] nvme-rdma: Free the I/O tags when we delete the controller Sagi Grimberg
2016-07-29 19:57 ` Sagi Grimberg
2016-08-01 11:03 ` Christoph Hellwig
2016-08-01 11:03 ` Christoph Hellwig
2016-08-01 11:15 ` Sagi Grimberg
2016-08-01 11:15 ` Sagi Grimberg
2016-08-01 15:47 ` Christoph Hellwig
2016-08-01 15:47 ` Christoph Hellwig
2016-08-02 6:14 ` Sagi Grimberg
2016-08-02 6:14 ` Sagi Grimberg
2016-07-29 19:57 ` [PATCH 3/5] nvme-rdma: Make sure to shutdown the controller if we can Sagi Grimberg
2016-07-29 19:57 ` Sagi Grimberg
2016-08-01 11:04 ` Christoph Hellwig [this message]
2016-08-01 11:04 ` Christoph Hellwig
2016-08-01 11:17 ` Sagi Grimberg
2016-08-01 11:17 ` Sagi Grimberg
2016-08-01 15:48 ` Christoph Hellwig
2016-08-01 15:48 ` Christoph Hellwig
2016-08-02 6:19 ` Sagi Grimberg
2016-08-02 6:19 ` Sagi Grimberg
2016-08-02 12:52 ` Christoph Hellwig
2016-08-02 12:52 ` Christoph Hellwig
2016-08-02 13:26 ` Sagi Grimberg
2016-08-02 13:26 ` Sagi Grimberg
2016-07-29 19:57 ` [PATCH 4/5] nvme-rdma: Remove duplicate call to nvme_remove_namespaces Sagi Grimberg
2016-07-29 19:57 ` Sagi Grimberg
2016-08-01 11:06 ` Christoph Hellwig
2016-08-01 11:06 ` Christoph Hellwig
2016-08-01 11:21 ` Sagi Grimberg
2016-08-01 11:21 ` Sagi Grimberg
2016-07-29 19:57 ` [PATCH 5/5] nvme-loop: " Sagi Grimberg
2016-07-29 19:57 ` Sagi Grimberg
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=20160801110446.GD16141@lst.de \
--to=hch@lst.de \
/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.