per-tagset SRCU struct and quiesce v2
Christoph Hellwig
hch at lst.de
Tue Oct 25 07:40:03 PDT 2022
Hi all,
this series moves the SRCU struct used for quiescing to the tag_set
as the SRCU critical sections for dispatch take about the same time
on all queues anyway, and then adopts the series from Chao that provides
tagset-wide quiesce to use that infrastructure.
To do so it does a fair amount of cleanups in how nvme quiesces queues.
Even with that nvme is still a bit of a mess in how it quiesces queues,
so further work is probably needed later.
Note: testing is a bit limited as I'm travelling. Before this proceeds
it should get surprise removal testing for nvme-pci.
Changes since v1:
- a whole bunch of new nvme cleanups
- use the notify version of set_capacity in blk_mark_disk_dead
- improve the documentation for blk_mq_wait_quiesce_done
- dynamically allocate the srcu_struct in struct blk_mq_tag_set
- minor spelling fixes
More information about the Linux-nvme
mailing list