cfq-iosched: Allow RT requests to pre-empt ongoing BE timeslice
authorDivyesh Shah <dpshah@google.com>
Fri, 30 Jan 2009 11:46:41 +0000 (12:46 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 30 Jan 2009 11:47:33 +0000 (12:47 +0100)
commit3a9a3f6cc55418dd1525e636dccbbe13c394f652
treeb23c46b8ecec0a338e4e81454e482f7dcd3ded0c
parentbc58ba9468d94d62c56ab9b47173583ec140b165
cfq-iosched: Allow RT requests to pre-empt ongoing BE timeslice

This patch adds the ability to pre-empt an ongoing BE timeslice when a RT
request is waiting for the current timeslice to complete. This reduces the
wait time to disk for RT requests from an upper bound of 4 (current value
of cfq_quantum) to 1 disk request.

Applied Jens' suggeested changes to avoid the rb lookup and use !cfq_class_rt()
and retested.

Latency(secs) for the RT task when doing sequential reads from 10G file.
                       | only RT | RT + BE | RT + BE + this patch
small (512 byte) reads | 143     | 163     | 145
large (1Mb) reads      | 142     | 158     | 146

Signed-off-by: Divyesh Shah <dpshah@google.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/cfq-iosched.c