On Mar 16, 2022 / 06:20, Jens Axboe wrote: > On 3/16/22 12:11 AM, Shin'ichiro Kawasaki wrote: > > diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c > > index 55488ba97823..64941615befc 100644 > > --- a/block/blk-mq-sched.c > > +++ b/block/blk-mq-sched.c > > @@ -181,9 +181,15 @@ static int __blk_mq_do_dispatch_sched(struct blk_mq_hw_ctx *hctx) > > static int blk_mq_do_dispatch_sched(struct blk_mq_hw_ctx *hctx) > > { > > int ret; > > + unsigned long end = jiffies + HZ; > > > > do { > > ret = __blk_mq_do_dispatch_sched(hctx); > > + if (ret == 1 && > > + (need_resched() || time_is_after_jiffies(end))) { > > + blk_mq_delay_run_hw_queue(hctx, 0); > > + break; > > + } > > } while (ret == 1); > > > > return ret; > > I think it'd look cleaner as: > > static int blk_mq_do_dispatch_sched(struct blk_mq_hw_ctx *hctx) > { > unsigned long end = jiffies + HZ; > int ret; > > do { > ret = __blk_mq_do_dispatch_sched(hctx); > if (ret != 1) > break; > if (need_resched() || time_is_after_jiffies(end)) { > blk_mq_delay_run_hw_queue(hctx, 0); > break; > } > } while (1); > > return ret; > } Thank you for this suggestion. It looks nice since avoids duplicated 'ret == 1'. Will reflect in v2. -- Best Regards, Shin'ichiro Kawasaki