From: Sagi Grimberg <sagig@dev.mellanox.co.il> To: Wenbo Wang <wenbo.wang@memblaze.com>, Keith Busch <keith.busch@intel.com> Cc: Jens Axboe <axboe@fb.com>, "Wenwei.Tao" <wenwei.tao@memblaze.com>, Wenbo Wang <mail_weber_wang@163.com>, "linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: Re: [PATCH] NVMe: do not touch sq door bell if nvmeq has been suspended Date: Sun, 7 Feb 2016 15:41:53 +0200 [thread overview] Message-ID: <56B749A1.8030504@dev.mellanox.co.il> (raw) In-Reply-To: <BJXPR01MB19916231021454BD8731EBDE0D30@BJXPR01MB199.CHNPR01.prod.partner.outlook.cn> > Keith, > > Is the following solution OK? > synchronize_rcu guarantee that no queue_rq is running concurrently with device disable code. > Together with your another patch (adding blk_sync_queue), both sync/async path shall be handled correctly. This can be acceptable I think. > Do you think synchronize_rcu shall be added to blk_sync_queue? Or, we'll add it to blk_mq_stop_hw_queues() and then scsi will enjoy it as well. > diff --git a/block/blk-mq.c b/block/blk-mq.c > index 4c0622f..bfe9132 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -865,7 +865,9 @@ void blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async) > if (!async) { > int cpu = get_cpu(); > if (cpumask_test_cpu(cpu, hctx->cpumask)) { > + rcu_read_lock(); > __blk_mq_run_hw_queue(hctx); > + rcu_read_unlock(); I think the rcu is better folded into __blk_mq_run_hw_queue to cover all the call sites.
WARNING: multiple messages have this Message-ID (diff)
From: sagig@dev.mellanox.co.il (Sagi Grimberg) Subject: [PATCH] NVMe: do not touch sq door bell if nvmeq has been suspended Date: Sun, 7 Feb 2016 15:41:53 +0200 [thread overview] Message-ID: <56B749A1.8030504@dev.mellanox.co.il> (raw) In-Reply-To: <BJXPR01MB19916231021454BD8731EBDE0D30@BJXPR01MB199.CHNPR01.prod.partner.outlook.cn> > Keith, > > Is the following solution OK? > synchronize_rcu guarantee that no queue_rq is running concurrently with device disable code. > Together with your another patch (adding blk_sync_queue), both sync/async path shall be handled correctly. This can be acceptable I think. > Do you think synchronize_rcu shall be added to blk_sync_queue? Or, we'll add it to blk_mq_stop_hw_queues() and then scsi will enjoy it as well. > diff --git a/block/blk-mq.c b/block/blk-mq.c > index 4c0622f..bfe9132 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -865,7 +865,9 @@ void blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async) > if (!async) { > int cpu = get_cpu(); > if (cpumask_test_cpu(cpu, hctx->cpumask)) { > + rcu_read_lock(); > __blk_mq_run_hw_queue(hctx); > + rcu_read_unlock(); I think the rcu is better folded into __blk_mq_run_hw_queue to cover all the call sites.
next prev parent reply other threads:[~2016-02-07 13:42 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-02-01 15:42 [PATCH] NVMe: do not touch sq door bell if nvmeq has been suspended Wenbo Wang 2016-02-01 15:42 ` Wenbo Wang 2016-02-01 15:59 ` Busch, Keith 2016-02-01 15:59 ` Busch, Keith 2016-02-01 16:17 ` Wenbo Wang 2016-02-01 16:17 ` Wenbo Wang 2016-02-01 16:54 ` Jens Axboe 2016-02-01 16:54 ` Jens Axboe 2016-02-02 7:15 ` Wenbo Wang 2016-02-02 12:41 ` Sagi Grimberg 2016-02-02 12:41 ` Sagi Grimberg 2016-02-02 14:27 ` Keith Busch 2016-02-02 14:27 ` Keith Busch 2016-02-02 14:33 ` Sagi Grimberg 2016-02-02 14:33 ` Sagi Grimberg 2016-02-02 14:46 ` Keith Busch 2016-02-02 14:46 ` Keith Busch 2016-02-02 17:20 ` Sagi Grimberg 2016-02-02 17:20 ` Sagi Grimberg 2016-02-03 0:49 ` Wenbo Wang 2016-02-02 17:25 ` Keith Busch 2016-02-02 17:25 ` Keith Busch 2016-02-03 0:19 ` Wenbo Wang 2016-02-03 14:41 ` Keith Busch 2016-02-03 14:41 ` Keith Busch 2016-02-03 16:35 ` Wenbo Wang 2016-02-03 16:38 ` Keith Busch 2016-02-03 16:38 ` Keith Busch 2016-02-06 14:32 ` Wenbo Wang 2016-02-07 13:41 ` Sagi Grimberg [this message] 2016-02-07 13:41 ` Sagi Grimberg 2016-02-08 15:01 ` Keith Busch 2016-02-08 15:01 ` Keith Busch 2016-02-09 11:22 ` Wenbo Wang 2016-02-09 22:55 ` Keith Busch 2016-02-09 22:55 ` Keith Busch
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=56B749A1.8030504@dev.mellanox.co.il \ --to=sagig@dev.mellanox.co.il \ --cc=axboe@fb.com \ --cc=keith.busch@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nvme@lists.infradead.org \ --cc=mail_weber_wang@163.com \ --cc=wenbo.wang@memblaze.com \ --cc=wenwei.tao@memblaze.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: linkBe 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.