You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
blk-mq: insert flush request to the front of dispatch queue
commit 01e99ae ("blk-mq: insert passthrough request into
hctx->dispatch directly") may change to add flush request to the tail
of dispatch by applying the 'add_head' parameter of
blk_mq_sched_insert_request.
Turns out this way causes performance regression on NCQ controller because
flush is non-NCQ command, which can't be queued when there is any in-flight
NCQ command. When adding flush rq to the front of hctx->dispatch, it is
easier to introduce extra time to flush rq's latency compared with adding
to the tail of dispatch queue because of S_SCHED_RESTART, then chance of
flush merge is increased, and less flush requests may be issued to
controller.
So always insert flush request to the front of dispatch queue just like
before applying commit 01e99ae ("blk-mq: insert passthrough request
into hctx->dispatch directly").
Cc: Damien Le Moal <[email protected]>
Cc: Shinichiro Kawasaki <[email protected]>
Reported-by: Shinichiro Kawasaki <[email protected]>
Fixes: 01e99ae ("blk-mq: insert passthrough request into hctx->dispatch directly")
Signed-off-by: Ming Lei <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
0 commit comments