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)
commitf984df1f0f71ef96254411fc3576a10ae561be71
tree784392aa99ea4c7dfe11c4e332801838d3804b75
parent239ad215f0d8388cbe6c09a0fab8ad8ff5dba420
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