Hi Jens, >>> Can either one of you try with this patch? Won't fix anything, but it'll >>> hopefully shine a bit of light on the issue. >>> >> Hi Jens >> >> Here is the full log: > >Thanks! I think I see what it could be - can you try this one as well, >would like to confirm that the condition I think is triggering is what >is triggering. > >diff --git a/block/blk-mq.c b/block/blk-mq.c >index 07eb1412760b..81dede885231 100644 >--- a/block/blk-mq.c >+++ b/block/blk-mq.c >@@ -2515,6 +2515,8 @@ void blk_mq_submit_bio(struct bio *bio) > if (plug && plug->cached_rq) { > rq = rq_list_pop(&plug->cached_rq); > INIT_LIST_HEAD(&rq->queuelist); >+ WARN_ON_ONCE(q->elevator && !(rq->rq_flags & RQF_ELV)); >+ WARN_ON_ONCE(!q->elevator && (rq->rq_flags & RQF_ELV)); > } else { > struct blk_mq_alloc_data data = { > .q = q, >@@ -2535,6 +2537,8 @@ void blk_mq_submit_bio(struct bio *bio) > bio_wouldblock_error(bio); > goto queue_exit; > } >+ WARN_ON_ONCE(q->elevator && !(rq->rq_flags & RQF_ELV)); >+ WARN_ON_ONCE(!q->elevator && (rq->rq_flags & RQF_ELV)); > } > > trace_block_getrq(bio); > >-- >Jens Axboe The first reported warning was started from calling scsi_execute(), so how about add the checking code in __scsi_execute()? Thanks, Daejun