]> git.baikalelectronics.ru Git - kernel.git/commit
block: recursive merge requests
authorShaohua Li <shaohua.li@intel.com>
Fri, 16 Dec 2011 13:00:31 +0000 (14:00 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 16 Dec 2011 13:00:31 +0000 (14:00 +0100)
commit862113994bf31436578205350a6e5abd307e2ae4
treef07a788183f2ac91b9b16295f8f146bd5b88fb96
parent5ff36c2549e3944ee9f0f5facd4805292ee72d0f
block: recursive merge requests

In my workload, thread 1 accesses a, a+2, ..., thread 2 accesses a+1,
a+3,.... When the requests are flushed to queue, a and a+1 are merged
to (a, a+1), a+2 and a+3 too to (a+2, a+3), but (a, a+1) and (a+2, a+3)
aren't merged.
With recursive merge below, the workload throughput gets improved 20%
and context switch drops 60%.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/elevator.c