linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [QUESTION] blk_mq_freeze_queue in elevator_init_mq
@ 2021-11-17  3:37 yangerkun
  2021-11-17  4:11 ` Bart Van Assche
  2021-11-17  8:06 ` Ming Lei
  0 siblings, 2 replies; 8+ messages in thread
From: yangerkun @ 2021-11-17  3:37 UTC (permalink / raw)
  To: ming.lei, damien.lemoal, axboe, miquel.raynal, richard, vigneshr
  Cc: linux-block, linux-mtd, yangerkun, yi.zhang, yebin10, houtao1

Nowdays we meet the boot regression while enable lots of mtdblock
compare with 4.4. The main reason was that the blk_mq_freeze_queue in
elevator_init_mq will wait a RCU gap which want to make sure no IO will
happen while blk_mq_init_sched.

Other module like loop meets this problem too and has been fix with
follow patches:

  2112f5c1330a loop: Select I/O scheduler 'none' from inside add_disk()
  90b7198001f2 blk-mq: Introduce the BLK_MQ_F_NO_SCHED_BY_DEFAULT flag

They change the default IO scheduler for loop to 'none'. So no need to
call blk_mq_freeze_queue and blk_mq_init_sched. But it seems not
appropriate for mtdblocks. Mtdblocks can use 'mq-deadline' to help
optimize the random write with the help of mtdblock's cache. Once change
to 'none', we may meet the regression for random write.

commit 737eb78e82d52d35df166d29af32bf61992de71d
Author: Damien Le Moal <damien.lemoal@wdc.com>
Date:   Thu Sep 5 18:51:33 2019 +0900

     block: Delay default elevator initialization

     ...

     Additionally, to make sure that the elevator initialization is never
     done while requests are in-flight (there should be none when the device
     driver calls device_add_disk()), freeze and quiesce the device request
     queue before calling blk_mq_init_sched() in elevator_init_mq().
     ...

This commit add blk_mq_freeze_queue in elevator_init_mq which try to
make sure no in-flight request while we go through blk_mq_init_sched.
But does there any drivers can leave IO alive while we go through
elevator_init_mq? And if no, maybe we can just remove this logical to
fix the regression...
.
.

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-11-18 13:13 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-17  3:37 [QUESTION] blk_mq_freeze_queue in elevator_init_mq yangerkun
2021-11-17  4:11 ` Bart Van Assche
2021-11-17  8:39   ` yangerkun
2021-11-17  8:06 ` Ming Lei
2021-11-17  8:37   ` yangerkun
2021-11-17  9:00   ` yangerkun
2021-11-17 10:19     ` Ming Lei
2021-11-18 13:12       ` yangerkun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).