[PATCHSET] 0/7 IO scheduler abstractions

From: Jens Axboe
Date: Wed Jul 12 2006 - 03:58:42 EST


Hi,

So right now we have some duplicated code and data structures among the
io schedulers. Apart from noop, the others all implement their own back
merging with hash helpers, sorting with rbtree helpers, and FIFO
management in private request structures.

This patch set takes care of moving what makes sense into the elevator
core instead. It results in about a 3kb reduction of kernel text, and a
reduction of 550 (!!) lines of kernel C code. The noop scheduler gains
merging capabilities for free, and the deadline scheduler can get rid of
its private deadline_rq structure. The latter is especially nice for
deadline, as it is now allocation free in the request path! deadline
code is also reduced from about 19kb to 11kb.

The patches are also available in the 'iosched' branch of the git block
repo.

block/as-iosched.c | 351 ++++-------------------------------
block/cfq-iosched.c | 268 +++++----------------------
block/deadline-iosched.c | 462 +++++++----------------------------------------
block/elevator.c | 231 +++++++++++++++++++++--
block/ll_rw_blk.c | 7
include/linux/blkdev.h | 18 -
include/linux/elevator.h | 33 +++
include/linux/rbtree.h | 2
lib/rbtree.c | 6
9 files changed, 427 insertions(+), 951 deletions(-)

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/