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;
 	}

_