On Tue, Feb 15, 2022 at 10:31:49AM +0100, Sebastian Andrzej Siewior wrote: > 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(). As I mentioned, the call chain isn't possible. Thanks, Ming