On 2022-02-15 17:23:45 [+0800], Ming Lei wrote: > > diff --git a/block/blk-mq.c b/block/blk-mq.c > > index 1adfe4824ef5e..90217f1b09add 100644 > > --- a/block/blk-mq.c > > +++ b/block/blk-mq.c > > @@ -2040,14 +2040,10 @@ static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async, > > return; > > > > if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { > > - int cpu = get_cpu(); > > Did you observe the warning triggered? might_sleep_if(true) in > __blk_mq_run_dispatch_ops() is only supposed to be run in case of > (hctx->flags & BLK_MQ_F_BLOCKING). I haven't seen it triggering but if that call chain is possible then it will triggert due to get_cpu(). > Thanks, > Ming Sebastian