Add "elevator=cfq" to the kernel commandline to use the CFQ elevator. Otherwise, you get the normal deadline elevator. And anticipatory scheduling, if that patch is applied. block/ll_rw_blk.c | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletion(-) diff -puN drivers/block/ll_rw_blk.c~elevator-selection drivers/block/ll_rw_blk.c --- 25/drivers/block/ll_rw_blk.c~elevator-selection 2003-02-14 21:40:10.000000000 -0800 +++ 25-akpm/drivers/block/ll_rw_blk.c 2003-02-14 22:22:45.000000000 -0800 @@ -1212,6 +1212,18 @@ nomem: static int __make_request(request_queue_t *, struct bio *); +static elevator_t *chosen_elevator = &iosched_deadline; + +static int __init elevator_setup(char *str) +{ + if (!strcmp(str, "cfq")) { + chosen_elevator = &iosched_cfq; + printk("elevator: cfq\n"); + } + return 1; +} +__setup("elevator=", elevator_setup); + /** * blk_init_queue - prepare a request queue for use with a block device * @q: The &request_queue_t to be initialised @@ -1247,7 +1259,12 @@ int blk_init_queue(request_queue_t *q, r if (blk_init_free_list(q)) return -ENOMEM; - if ((ret = elevator_init(q, &iosched_cfq))) { + if (chosen_elevator == &iosched_cfq) + printk("using CFQ elevator\n"); + else + printk("using deadline elevator\n"); + + if ((ret = elevator_init(q, chosen_elevator))) { blk_cleanup_queue(q); return ret; } _