[PATCH][plugsched 19/28] Name and choose scheduler

From: Con Kolivas
Date: Sat Oct 30 2004 - 10:27:16 EST


Name and choose scheduler

Add a scheduler name and the beginnings of bootparam checking to change
scheduler at boot time.

Signed-off-by: Con Kolivas <kernel@xxxxxxxxxxx>


Index: linux-2.6.10-rc1-mm2-plugsched1/include/linux/scheduler.h
===================================================================
--- linux-2.6.10-rc1-mm2-plugsched1.orig/include/linux/scheduler.h 2004-10-29 21:47:52.739595073 +1000
+++ linux-2.6.10-rc1-mm2-plugsched1/include/linux/scheduler.h 2004-10-29 21:48:05.209648954 +1000
@@ -1,5 +1,8 @@
+#define SCHED_NAME_MAX (16)
+
struct sched_drv
{
+ char cpusched_name[SCHED_NAME_MAX];
int (*rt_task)(task_t *);
void (*wait_for_completion)(struct completion *);
void (*io_schedule)(void);
Index: linux-2.6.10-rc1-mm2-plugsched1/kernel/sched.c
===================================================================
--- linux-2.6.10-rc1-mm2-plugsched1.orig/kernel/sched.c 2004-10-29 21:47:52.743594449 +1000
+++ linux-2.6.10-rc1-mm2-plugsched1/kernel/sched.c 2004-10-29 21:48:05.211648642 +1000
@@ -4151,6 +4151,7 @@ void destroy_sched_domain_sysctl()
#endif

struct sched_drv ingo_sched_drv = {
+ .cpusched_name = "ingosched",
.rt_task = ingo_rt_task,
.wait_for_completion = ingo_wait_for_completion,
.io_schedule = ingo_io_schedule,
Index: linux-2.6.10-rc1-mm2-plugsched1/kernel/scheduler.c
===================================================================
--- linux-2.6.10-rc1-mm2-plugsched1.orig/kernel/scheduler.c 2004-10-29 21:47:49.051170701 +1000
+++ linux-2.6.10-rc1-mm2-plugsched1/kernel/scheduler.c 2004-10-29 21:48:05.212648486 +1000
@@ -878,7 +878,17 @@ void fastcall complete_all(struct comple
EXPORT_SYMBOL(complete_all);

extern struct sched_drv ingo_sched_drv;
-static const struct sched_drv *scheduler = &ingo_sched_drv;
+
+static struct sched_drv *scheduler = &ingo_sched_drv;
+
+static int __init scheduler_setup(char *str)
+{
+ if (!strcmp(str, "ingosched"))
+ scheduler = &ingo_sched_drv;
+ return 1;
+}
+
+__setup ("cpusched=", scheduler_setup);

void fastcall __sched wait_for_completion(struct completion *x)
{

Attachment: signature.asc
Description: OpenPGP digital signature