]> git.baikalelectronics.ru Git - kernel.git/commit
blk-mq: do limited block plug for multiple queue case
authorShaohua Li <shli@fb.com>
Fri, 8 May 2015 17:51:32 +0000 (10:51 -0700)
committerJens Axboe <axboe@fb.com>
Fri, 8 May 2015 20:17:21 +0000 (14:17 -0600)
commit78e31306275cc713829ea028a57a93b44e2eb3e1
tree784392aa99ea4c7dfe11c4e332801838d3804b75
parentb23cf44cee113c3bb5a9158e53f7b2c4c9dc481c
blk-mq: do limited block plug for multiple queue case

plug is still helpful for workload with IO merge, but it can be harmful
otherwise especially with multiple hardware queues, as there is
(supposed) no lock contention in this case and plug can introduce
latency. For multiple queues, we do limited plug, eg plug only if there
is request merge. If a request doesn't have merge with following
request, the requet will be dispatched immediately.

V2: check blk_queue_nomerges() as suggested by Jeff.

Cc: Jens Axboe <axboe@fb.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c