[PATCH v4 0/2] improve quiesce time for large amount of namespaces
Sagi Grimberg
sagi at grimberg.me
Mon Jul 27 18:07:15 EDT 2020
This set improves the quiesce time when using a large set of
namespaces, which also improves I/O failover time in a multipath environment.
We improve for both non-blocking hctxs (e.g. pci, fc, rdma nvme transports)
and blocking hctxs (e.g. tcp nvme transport) by splitting queue quiesce to
blk_mq_quiesce_queue_async call_(s)rcu and blk_mq_quiesce_queue_async_wait
to wait for it to complete. These calls are meant to be called in parallel
for different queues.
Changes from v3:
- make hctx->rcu_sync dynamically allocated from the heap instead
of a static member function
Changes from v2:
- made blk_mq_quiesce_queue_async operate on both blocking and
non-blocking hctxs.
- removed separation between blocking vs. non-blocking queues
- dropeed patch from Chao
- dropped nvme-rdma test patch
Changes from v1:
- trivial typo fixes
Sagi Grimberg (2):
blk-mq: add async quiesce interface
nvme: improve quiesce time for large amount of namespaces
block/blk-mq.c | 46 ++++++++++++++++++++++++++++++++++++++++
drivers/nvme/host/core.c | 4 +++-
include/linux/blk-mq.h | 4 ++++
3 files changed, 53 insertions(+), 1 deletion(-)
--
2.25.1
More information about the Linux-nvme
mailing list