From: Jens Axboe <axboe@xxxxxxxxx> > Sent: Monday, December 13, 2021 10:43 AM > > I wonder if this will help, SCSI artifact making us hit the > mod delayed work path all the time. Yes, I think this is what's happening here. > Might be a race in there, but should be fine for testing. > > > diff --git a/block/blk-core.c b/block/blk-core.c > index 4d8f5fe91588..cb2f4d604bad 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -1625,7 +1625,9 @@ EXPORT_SYMBOL(kblockd_schedule_work); > int kblockd_mod_delayed_work_on(int cpu, struct delayed_work *dwork, > unsigned long delay) > { > - return mod_delayed_work_on(cpu, kblockd_workqueue, dwork, delay); > + if (!work_pending(&dwork->work)) > + return mod_delayed_work_on(cpu, kblockd_workqueue, dwork, > delay); > + return true; > } > EXPORT_SYMBOL(kblockd_mod_delayed_work_on); > -- > Jens Axboe Thanks very much! This path works! In the test, "v5.16-rc4 + reverting dc5fc361d891 ("block: attempt direct issue of plug list") + this patch" shows a good I/O performance that's about the same as v5.16-rc4. I suppose "v5.16-rc4 + this patch" would show a slightly even better performance. It would be great if you can commit this small patch so that it can be backported to old stable kernels. Thanks, Dexuan