[PATCH V2 2/6] blk-mq: support concurrent blk_mq_quiesce_queue()

Ming Lei ming.lei at redhat.com
Mon Jan 1 19:01:48 PST 2018


On Fri, Dec 29, 2017 at 10:58:33AM +0100, Christoph Hellwig wrote:
> The quiesce count looks good to me.  But I'm really worried about
> the force unquiesce in nvme.  I'd feel much better if we could find

This patch doesn't change the behaviour wrt. force unquiesce in NVMe,
which has been done since commit 443bd90f2cca(nvme: host: unquiesce queue
in nvme_kill_queues()).

The reason is that NVMe's usage of blk_mq_quiesce_queue() is a bit complicated,
for example:

- nvme_dev_disable(false) may be called two times in reset_work()
- queue may never be started in nvme_fw_act_work()
...

But blk_cleanup_queue() can be triggered anytime.

> a way to move this into the core.

We can't move the force unquiesce into blk_set_queue_dying() or other
places in core before calling blk_cleanup_queue(), because that may
break SCSI which uses quiesce to implement device block.

thanks,
Ming



More information about the Linux-nvme mailing list