]> 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)
commit6636d7020e1b1a428613759c3ee0fed4f61bc24d
treec7a61741aba75e320838865f176092c07af37f95
parenta4b4d6acc5597cc729422871cd783cba9ab2757b
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