aboutsummaryrefslogtreecommitdiff
path: root/drivers/tc
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2005-10-28 08:29:39 +0200
committerJens Axboe <axboe@nelson.home.kernel.dk>2005-10-28 08:48:12 +0200
commitcb98fc8bb9c141009e2bda99c0db39d387e142cf (patch)
tree8957f8a79f39c3e6633a0dbb165ced8b530aca0c /drivers/tc
parentcb19833dccb32f97cacbfff834b53523915f13f6 (diff)
[BLOCK] Reimplement elevator switch
This patch reimplements elevator switch. This patch assumes generic dispatch queue patchset is applied. * Each request is tagged with REQ_ELVPRIV flag if it has its elevator private data set. * Requests which doesn't have REQ_ELVPRIV flag set never enter iosched. They are always directly back inserted to dispatch queue. Of course, elevator_put_req_fn is called only for requests which have its REQ_ELVPRIV set. * Request queue maintains the current number of requests which have its elevator data set (elevator_set_req_fn called) in q->rq->elvpriv. * If a request queue has QUEUE_FLAG_BYPASS set, elevator private data is not allocated for new requests. To switch to another iosched, we set QUEUE_FLAG_BYPASS and wait until elvpriv goes to zero; then, we attach the new iosched and clears QUEUE_FLAG_BYPASS. New implementation is much simpler and main code paths are less cluttered, IMHO. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'drivers/tc')
0 files changed, 0 insertions, 0 deletions