From: Christoph Hellwig <hch@lst.de>
To: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: Jens Axboe <axboe@fb.com>, Christoph Hellwig <hch@lst.de>,
James Bottomley <jejb@linux.vnet.ibm.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Mike Snitzer <snitzer@redhat.com>,
Doug Ledford <dledford@redhat.com>,
Keith Busch <keith.busch@intel.com>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>
Subject: Re: [PATCH v2 7/7] [RFC] nvme: Fix a race condition
Date: Tue, 11 Oct 2016 18:46:01 +0200 [thread overview]
Message-ID: <20161011164601.GC18822@lst.de> (raw)
In-Reply-To: <ff412bfb-548c-c4fc-5180-78ede8a19ef2@sandisk.com>
On Wed, Sep 28, 2016 at 05:01:45PM -0700, Bart Van Assche wrote:
> Avoid that nvme_queue_rq() is still running when nvme_stop_queues()
> returns. Untested.
>
> Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
> Cc: Keith Busch <keith.busch@intel.com>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: Sagi Grimberg <sagi@grimberg.me>
> ---
> drivers/nvme/host/core.c | 20 ++++++++++++--------
> 1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index d791fba..98f1f29 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -201,13 +201,9 @@ fail:
>
> void nvme_requeue_req(struct request *req)
> {
> - unsigned long flags;
> -
> blk_mq_requeue_request(req);
> - spin_lock_irqsave(req->q->queue_lock, flags);
> - if (!blk_mq_queue_stopped(req->q))
> - blk_mq_kick_requeue_list(req->q);
> - spin_unlock_irqrestore(req->q->queue_lock, flags);
> + WARN_ON_ONCE(blk_mq_queue_stopped(req->q));
> + blk_mq_kick_requeue_list(req->q);
> }
> EXPORT_SYMBOL_GPL(nvme_requeue_req);
Can we just add a 'bool kick' argument to blk_mq_requeue_request and
move all this handling to the core?
WARNING: multiple messages have this Message-ID (diff)
From: hch@lst.de (Christoph Hellwig)
Subject: [PATCH v2 7/7] [RFC] nvme: Fix a race condition
Date: Tue, 11 Oct 2016 18:46:01 +0200 [thread overview]
Message-ID: <20161011164601.GC18822@lst.de> (raw)
In-Reply-To: <ff412bfb-548c-c4fc-5180-78ede8a19ef2@sandisk.com>
On Wed, Sep 28, 2016@05:01:45PM -0700, Bart Van Assche wrote:
> Avoid that nvme_queue_rq() is still running when nvme_stop_queues()
> returns. Untested.
>
> Signed-off-by: Bart Van Assche <bart.vanassche at sandisk.com>
> Cc: Keith Busch <keith.busch at intel.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: Sagi Grimberg <sagi at grimberg.me>
> ---
> drivers/nvme/host/core.c | 20 ++++++++++++--------
> 1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index d791fba..98f1f29 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -201,13 +201,9 @@ fail:
>
> void nvme_requeue_req(struct request *req)
> {
> - unsigned long flags;
> -
> blk_mq_requeue_request(req);
> - spin_lock_irqsave(req->q->queue_lock, flags);
> - if (!blk_mq_queue_stopped(req->q))
> - blk_mq_kick_requeue_list(req->q);
> - spin_unlock_irqrestore(req->q->queue_lock, flags);
> + WARN_ON_ONCE(blk_mq_queue_stopped(req->q));
> + blk_mq_kick_requeue_list(req->q);
> }
> EXPORT_SYMBOL_GPL(nvme_requeue_req);
Can we just add a 'bool kick' argument to blk_mq_requeue_request and
move all this handling to the core?
next prev parent reply other threads:[~2016-10-11 16:46 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-28 23:57 [PATCH v2 0/7] Introduce blk_quiesce_queue() and blk_resume_queue() Bart Van Assche
2016-09-28 23:57 ` Bart Van Assche
2016-09-28 23:57 ` [PATCH v2 1/7] blk-mq: Introduce blk_mq_queue_stopped() Bart Van Assche
2016-09-28 23:57 ` Bart Van Assche
2016-10-05 17:50 ` Sagi Grimberg
2016-10-05 17:50 ` Sagi Grimberg
2016-10-11 16:40 ` Christoph Hellwig
2016-10-11 16:40 ` Christoph Hellwig
2016-09-28 23:59 ` [PATCH v2 4/7] blk-mq: Introduce blk_quiesce_queue() and blk_resume_queue() Bart Van Assche
2016-09-28 23:59 ` Bart Van Assche
2016-09-29 5:52 ` Hannes Reinecke
2016-09-29 5:52 ` Hannes Reinecke
2016-09-29 5:52 ` Hannes Reinecke
2016-09-29 21:51 ` Ming Lei
2016-09-29 21:51 ` Ming Lei
2016-09-29 21:51 ` Ming Lei
2016-09-30 15:55 ` Bart Van Assche
2016-09-30 15:55 ` Bart Van Assche
2016-10-01 22:56 ` Ming Lei
2016-10-01 22:56 ` Ming Lei
2016-10-01 22:56 ` Ming Lei
2016-10-05 4:16 ` Bart Van Assche
2016-10-05 4:16 ` Bart Van Assche
2016-10-05 4:32 ` Ming Lei
2016-10-05 4:32 ` Ming Lei
2016-10-05 4:32 ` Ming Lei
2016-10-05 14:46 ` Bart Van Assche
2016-10-05 14:46 ` Bart Van Assche
2016-10-05 16:11 ` Ming Lei
2016-10-05 16:11 ` Ming Lei
2016-10-05 18:14 ` Sagi Grimberg
2016-10-05 18:14 ` Sagi Grimberg
2016-10-05 18:14 ` Sagi Grimberg
2016-10-05 19:05 ` Bart Van Assche
2016-10-05 19:05 ` Bart Van Assche
2016-10-05 19:10 ` Sagi Grimberg
2016-10-05 19:10 ` Sagi Grimberg
2016-10-05 21:08 ` Bart Van Assche
2016-10-05 21:08 ` Bart Van Assche
2016-10-05 21:08 ` Bart Van Assche
2016-10-05 22:49 ` Ming Lei
2016-10-05 22:49 ` Ming Lei
2016-10-05 22:49 ` Ming Lei
2016-10-05 23:00 ` Bart Van Assche
2016-10-05 23:00 ` Bart Van Assche
2016-09-29 0:00 ` [PATCH v2 5/7] dm: Fix a race condition related to stopping and starting queues Bart Van Assche
2016-09-29 0:00 ` Bart Van Assche
2016-09-29 0:00 ` Bart Van Assche
2016-09-29 0:01 ` [PATCH v2 6/7] SRP transport: Port srp_wait_for_queuecommand() to scsi-mq Bart Van Assche
2016-09-29 0:01 ` Bart Van Assche
2016-09-29 5:54 ` Hannes Reinecke
2016-09-29 5:54 ` Hannes Reinecke
2016-10-05 17:38 ` Sagi Grimberg
2016-10-05 17:38 ` Sagi Grimberg
2016-10-05 17:38 ` Sagi Grimberg
2016-10-05 21:51 ` Bart Van Assche
2016-10-05 21:51 ` Bart Van Assche
2016-10-11 16:44 ` Christoph Hellwig
2016-10-11 16:44 ` Christoph Hellwig
2016-10-11 16:44 ` Christoph Hellwig
2016-09-29 0:01 ` [PATCH v2 7/7] [RFC] nvme: Fix a race condition Bart Van Assche
2016-09-29 0:01 ` Bart Van Assche
2016-10-05 17:40 ` Sagi Grimberg
2016-10-05 17:40 ` Sagi Grimberg
2016-10-11 16:46 ` Christoph Hellwig [this message]
2016-10-11 16:46 ` Christoph Hellwig
2016-10-12 0:41 ` Bart Van Assche
2016-10-12 0:41 ` Bart Van Assche
2016-09-29 0:02 ` [PATCH v2 2/7] dm: Use BLK_MQ_S_STOPPED instead of QUEUE_FLAG_STOPPED in blk-mq code Bart Van Assche
2016-09-29 0:02 ` Bart Van Assche
2016-09-29 0:02 ` [PATCH v2 3/7] [RFC] nvme: " Bart Van Assche
2016-09-29 0:02 ` Bart Van Assche
2016-10-05 17:43 ` Sagi Grimberg
2016-10-05 17:43 ` Sagi Grimberg
2016-10-05 17:43 ` 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=20161011164601.GC18822@lst.de \
--to=hch@lst.de \
--cc=axboe@fb.com \
--cc=bart.vanassche@sandisk.com \
--cc=dledford@redhat.com \
--cc=jejb@linux.vnet.ibm.com \
--cc=keith.busch@intel.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=snitzer@redhat.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.