nvme_stop_queues quiesce queues for all name spaces, now quiesce one by one, if there is lots of name spaces, sync wait long time(more than 10s). Multipath can not fail over to retry quickly, cause io pause long time. This is not expected. To reduce quiesce time, we introduce async mechanism for sync SRCUs and quiesce queue. Changes from v1: - add support for blocking queue. - introduce async mechanism for sync SRCU - introduce async mechanism for quiesce queue Chao Leng (3): rcu: introduce async mechanism for sync SRCU blk-mq: introduce async mechanism for quiesce queue nvme-core: reduce io pause time when fail over block/blk-mq.c | 28 ++++++++++++++++++++++++++++ drivers/nvme/host/core.c | 7 ++++++- include/linux/blk-mq.h | 2 ++ include/linux/rcupdate_wait.h | 6 ++++++ include/linux/srcu.h | 1 + include/linux/srcutiny.h | 2 ++ include/linux/srcutree.h | 2 ++ kernel/rcu/srcutiny.c | 15 +++++++++++++++ kernel/rcu/srcutree.c | 26 ++++++++++++++++++++++++++ kernel/rcu/update.c | 11 +++++++++++ 10 files changed, 99 insertions(+), 1 deletion(-) -- 2.16.4