On Mon, Aug 01 2016 at 6:41pm -0400, Bart Van Assche <bart.vanassche@xxxxxxxxxxx> wrote: > On 08/01/2016 01:46 PM, Mike Snitzer wrote: > > Please retry both variant (CONFIG_DM_MQ_DEFAULT=y first) with this patch > > applied. Interested to see if things look better for you (WARN_ON_ONCEs > > added just to see if we hit the corresponding suspend/stopped state > > while mapping requests -- if so this speaks to an inherently racy > > problem that will need further investigation for a proper fix but > > results from this should let us know if we're closer). > > > > diff --git a/drivers/md/dm.c b/drivers/md/dm.c > > index 1b2f962..0e0f6e0 100644 > > --- a/drivers/md/dm.c > > +++ b/drivers/md/dm.c > > @@ -2007,6 +2007,9 @@ static int map_request(struct dm_rq_target_io *tio, struct request *rq, > > struct dm_target *ti = tio->ti; > > struct request *clone = NULL; > > > > + if (WARN_ON_ONCE(unlikely(dm_suspended_md(md)))) > > + return DM_MAPIO_REQUEUE; > > + > > if (tio->clone) { > > clone = tio->clone; > > r = ti->type->map_rq(ti, clone, &tio->info); > > @@ -2722,6 +2725,9 @@ static int dm_mq_queue_rq(struct blk_mq_hw_ctx *hctx, > > dm_put_live_table(md, srcu_idx); > > } > > > > + if (WARN_ON_ONCE(unlikely(test_bit(BLK_MQ_S_STOPPED, &hctx->state)))) > > + return BLK_MQ_RQ_QUEUE_BUSY; > > + > > if (ti->type->busy && ti->type->busy(ti)) > > return BLK_MQ_RQ_QUEUE_BUSY; > > Hello Mike, > > The test results with this patch and also the three other patches that > have been posted in the context of this e-mail thread applied on top of > kernel v4.7 are as follows: Hi Bart, Please do these same tests against a v4.7 kernel with the 4 patches from this branch applied (no need for your other debug patches): https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/log/?h=dm-4.7-mpath-fixes I've had good results with my blk-mq SRP based testing. Thanks, Mike -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel