All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] blk-mq/dm-rq: support BLK_MQ_F_BLOCKING for dm-rq
@ 2021-12-21 14:14 ` Ming Lei
  0 siblings, 0 replies; 40+ messages in thread
From: Ming Lei @ 2021-12-21 14:14 UTC (permalink / raw)
  To: Jens Axboe, Mike Snitzer; +Cc: linux-block, dm-devel, Ming Lei

Hello,

dm-rq may be built on blk-mq device which marks BLK_MQ_F_BLOCKING, so
dm_mq_queue_rq() may become to sleep current context.

Fixes the issue by allowing dm-rq to set BLK_MQ_F_BLOCKING in case that
any underlying queue is marked as BLK_MQ_F_BLOCKING.

DM request queue is allocated before allocating tagset, this way is a
bit special, so we need to pre-allocate srcu payload, then use the queue
flag of QUEUE_FLAG_BLOCKING for locking dispatch.


Ming Lei (3):
  block: split having srcu from queue blocking
  block: add blk_alloc_disk_srcu
  dm: mark dm queue as blocking if any underlying is blocking

 block/blk-core.c       |  2 +-
 block/blk-mq.c         |  6 +++---
 block/blk-mq.h         |  2 +-
 block/blk-sysfs.c      |  2 +-
 block/genhd.c          |  5 +++--
 drivers/md/dm-rq.c     |  5 ++++-
 drivers/md/dm-rq.h     |  3 ++-
 drivers/md/dm-table.c  | 14 ++++++++++++++
 drivers/md/dm.c        |  5 +++--
 drivers/md/dm.h        |  1 +
 include/linux/blkdev.h |  5 +++--
 include/linux/genhd.h  | 12 ++++++++----
 12 files changed, 44 insertions(+), 18 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2022-01-19 21:03 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-21 14:14 [PATCH 0/3] blk-mq/dm-rq: support BLK_MQ_F_BLOCKING for dm-rq Ming Lei
2021-12-21 14:14 ` [dm-devel] " Ming Lei
2021-12-21 14:14 ` [PATCH 1/3] block: split having srcu from queue blocking Ming Lei
2021-12-21 14:14   ` [dm-devel] " Ming Lei
2022-01-11 18:13   ` Jeff Moyer
2022-01-11 18:13     ` Jeff Moyer
2021-12-21 14:14 ` [PATCH 2/3] block: add blk_alloc_disk_srcu Ming Lei
2021-12-21 14:14   ` [dm-devel] " Ming Lei
2022-01-11 18:13   ` Jeff Moyer
2022-01-11 18:13     ` Jeff Moyer
2021-12-21 14:14 ` [PATCH 3/3] dm: mark dm queue as blocking if any underlying is blocking Ming Lei
2021-12-21 14:14   ` [dm-devel] " Ming Lei
2022-01-06 15:40   ` Mike Snitzer
2022-01-06 15:40     ` [dm-devel] " Mike Snitzer
2022-01-06 15:51     ` Ming Lei
2022-01-06 15:51       ` [dm-devel] " Ming Lei
2022-01-10 19:23       ` Mike Snitzer
2022-01-10 19:23         ` [dm-devel] " Mike Snitzer
2022-01-11 18:14   ` Jeff Moyer
2022-01-11 18:14     ` Jeff Moyer
2021-12-21 16:21 ` [PATCH 0/3] blk-mq/dm-rq: support BLK_MQ_F_BLOCKING for dm-rq Christoph Hellwig
2021-12-21 16:21   ` [dm-devel] " Christoph Hellwig
2021-12-23  4:16   ` Ming Lei
2021-12-23  4:16     ` [dm-devel] " Ming Lei
2021-12-28 21:30     ` Mike Snitzer
2021-12-28 21:30       ` [dm-devel] " Mike Snitzer
2022-01-10 19:26       ` Mike Snitzer
2022-01-10 19:26         ` [dm-devel] " Mike Snitzer
2022-01-11  8:34       ` Christoph Hellwig
2022-01-11  8:34         ` Christoph Hellwig
2022-01-11 16:15         ` Mike Snitzer
2022-01-11 16:15           ` [dm-devel] " Mike Snitzer
2022-01-17  8:08           ` Christoph Hellwig
2022-01-17  8:08             ` Christoph Hellwig
2022-01-11 18:23         ` Jeff Moyer
2022-01-11 18:23           ` Jeff Moyer
2022-01-17  8:10           ` Christoph Hellwig
2022-01-17  8:10             ` Christoph Hellwig
2022-01-19 21:03             ` Mike Snitzer
2022-01-19 21:03               ` [dm-devel] " Mike Snitzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.