On Tue, Dec 21, 2021 at 08:21:39AM -0800, Christoph Hellwig wrote: > On Tue, Dec 21, 2021 at 10:14:56PM +0800, Ming Lei wrote: > > 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. > > What is the benefit over just forcing bio-based dm-mpath for these > devices? At least IO scheduler can't be used for bio based dm-mpath, also there should be other drawbacks for bio based mpath and request mpath is often the default option, maybe Mike has more input about bio vs request dm-mpath. Thanks, Ming