]> git.baikalelectronics.ru Git - kernel.git/commit
blk-mq-sched: change ->dispatch_requests() to ->dispatch_request()
authorJens Axboe <axboe@fb.com>
Thu, 26 Jan 2017 19:40:07 +0000 (12:40 -0700)
committerJens Axboe <axboe@fb.com>
Fri, 27 Jan 2017 15:20:35 +0000 (08:20 -0700)
commitced8723f804c36aec45255cfae7efeb998912f5d
treec7a61741aba75e320838865f176092c07af37f95
parentc9ca617de367b852f4ac0e4cb6810377df2aef2c
blk-mq-sched: change ->dispatch_requests() to ->dispatch_request()

When we invoke dispatch_requests(), the scheduler empties everything
into the passed in list. This isn't always a good thing, since it
means that we remove items that we could have potentially merged
with.

Change the function to dispatch single requests at the time. If
we do that, we can backoff exactly at the point where the device
can't consume more IO, and leave the rest with the scheduler for
better merging and future dispatch decision making.

Signed-off-by: Jens Axboe <axboe@fb.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Tested-by: Hannes Reinecke <hare@suse.com>
block/blk-mq-sched.c
block/blk-mq.c
block/mq-deadline.c
include/linux/elevator.h