Skip to contentSkip to conversation

CFQ io scheduler for test5

PATCH New Jens Axboe 1 participant 1 message Sep 9, 2003 Block layer

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

PATCH 1/1 CFQ io scheduler for test5

Hi,

Due to the insert_here changes I made for -test4, the CFQ patch needs to be updated for -test5.

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas:
# ChangeSet 1.1238 -> 1.1239
# include/linux/elevator.h 1.28 -> 1.29
# drivers/block/Kconfig.iosched 1.2 -> 1.3
# drivers/block/ll_rw_blk.c 1.212 -> 1.213
# drivers/block/Makefile 1.21 -> 1.22
# (new) -> 1.1 drivers/block/cfq-iosched.c
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/09/09 [email protected] 1.1239
# CFQ io scheduler
# --------------------------------------------
#

drivers/block/Kconfig.iosched +7 -0
diff -Nru a/drivers/block/Kconfig.iosched b/drivers/block/Kconfig.iosched
@@ -27,3 +27,10 @@
 	  a disk at any one time, its behaviour is almost identical to the
 	  anticipatory I/O scheduler and so is a good choice.
 
+config IOSCHED_CFQ
+	bool "CFQ I/O scheduler" if EMBEDDED
+	default y
+	---help---
+	  The CFQ I/O scheduler tries to distribute bandwidth equally
+	  among all processes in the system. It should provide a fair
+	  working environment, suitable for desktop systems.
drivers/block/Makefile +1 -0
diff -Nru a/drivers/block/Makefile b/drivers/block/Makefile
@@ -18,6 +18,7 @@
 obj-$(CONFIG_IOSCHED_NOOP)	+= noop-iosched.o
 obj-$(CONFIG_IOSCHED_AS)	+= as-iosched.o
 obj-$(CONFIG_IOSCHED_DEADLINE)	+= deadline-iosched.o
+obj-$(CONFIG_IOSCHED_CFQ)	+= cfq-iosched.o
 obj-$(CONFIG_MAC_FLOPPY)	+= swim3.o
 obj-$(CONFIG_BLK_DEV_FD)	+= floppy.o
 obj-$(CONFIG_BLK_DEV_FD98)	+= floppy98.o
drivers/block/cfq-iosched.c new file +707 -0

707 lines not on this page · raw message

drivers/block/ll_rw_blk.c +6 -0
diff -Nru a/drivers/block/ll_rw_blk.c b/drivers/block/ll_rw_blk.c
@@ -1239,6 +1239,8 @@
 	&iosched_as;
 #elif defined(CONFIG_IOSCHED_DEADLINE)
 	&iosched_deadline;
+#elif defined(CONFIG_IOSCHED_CFQ)
+	&iosched_cfq;
 #elif defined(CONFIG_IOSCHED_NOOP)
 	&elevator_noop;
 #else
@@ -1256,6 +1258,10 @@
 #ifdef CONFIG_IOSCHED_AS
 	if (!strcmp(str, "as"))
 		chosen_elevator = &iosched_as;
+#endif
+#ifdef CONFIG_IOSCHED_CFQ
+	if (!strcmp(str, "cfq"))
+		chosen_elevator = &iosched_cfq;
 #endif
 #ifdef CONFIG_IOSCHED_NOOP
 	if (!strcmp(str, "noop"))
include/linux/elevator.h +5 -0
diff -Nru a/include/linux/elevator.h b/include/linux/elevator.h
@@ -95,6 +95,11 @@
  */
 extern elevator_t iosched_as;
 
+/*
+ * completely fair queueing I/O scheduler
+ */
+extern elevator_t iosched_cfq;
+
 extern int elevator_init(request_queue_t *, elevator_t *);
 extern void elevator_exit(request_queue_t *);
 extern inline int elv_rq_merge_ok(struct request *, struct bio *);
Signature · 1 line
Jens Axboe