aboutsummaryrefslogtreecommitdiff
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-04-20 14:27:50 +0200
committerJens Axboe <axboe@nelson.home.kernel.dk>2007-04-30 09:01:21 +0200
commitd9e7620e60bc6648c3dcabbc8d1a320b69c846f9 (patch)
tree450d0f92533184d85ac00ab1625460fe0be4cda7 /kernel/workqueue.c
parent1afba0451c83cbff622a08f2d86fbb2e680dfd5f (diff)
cfq-iosched: rework the whole round-robin list concept
Drawing on some inspiration from the CFS CPU scheduler design, overhaul the pending cfq_queue concept list management. Currently CFQ uses a doubly linked list per priority level for sorting and service uses. Kill those lists and maintain an rbtree of cfq_queue's, sorted by when to service them. This unfortunately means that the ionice levels aren't as strong anymore, will work on improving those later. We only scale the slice time now, not the number of times we service. This means that latency is better (for all priority levels), but that the distinction between the highest and lower levels aren't as big. The diffstat speaks for itself. cfq-iosched.c | 363 +++++++++++++++++--------------------------------- 1 file changed, 125 insertions(+), 238 deletions(-) Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'kernel/workqueue.c')
0 files changed, 0 insertions, 0 deletions