Hi Jens,
The 1st patch add .mq_quiesce_mutex for serializing quiesce/unquiesce,
and prepares for replacing srcu with percpu_ref.
The 2nd patch replaces srcu with percpu_ref.
V2:
- add .mq_quiesce_lock
- add comment on patch 2 wrt. handling hctx_lock() failure
- trivial patch style change
Ming Lei (2):
blk-mq: serialize queue quiesce and unquiesce by mutex
blk-mq: implement queue quiesce via percpu_ref for BLK_MQ_F_BLOCKING
I thought we agreed to have a little more consolidation for blocking and
!blocking paths (move fallbacks to common paths).
block/blk-core.c | 2 +
block/blk-mq-sysfs.c | 2 -
block/blk-mq.c | 125 +++++++++++++++++++++++------------------
block/blk-sysfs.c | 6 +-
include/linux/blk-mq.h | 7 ---
include/linux/blkdev.h | 6 ++
6 files changed, 82 insertions(+), 66 deletions(-)
Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxx>
Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
Cc: Sagi Grimberg <sagi@xxxxxxxxxxx>
Cc: Bart Van Assche <bvanassche@xxxxxxx>
Cc: Johannes Thumshirn <Johannes.Thumshirn@xxxxxxx>
Cc: Chao Leng <lengchao@xxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Hello Guys,
Is there any objections on the two patches? If not, I'd suggest to move> on.
Seems like the nested case is one that should either be handled, or at
least detected.
Personally, I'd like to see the async quiesce piece as well here, which
is the reason why this change was proposed. Don't see a strong urgency
to move forward with it before that, especially as this could
potentially affect various non-trivial reset flows.