Re: How to add scheduler

From: Peter Williams
Date: Wed Oct 28 2009 - 02:01:36 EST


On 27/10/09 17:30, Pankaj Parakh wrote:
On Sat, Oct 24, 2009 at 6:07 AM, Peter Williams<pwil3058@xxxxxxxxxxxxxx> wrote:
On 24/10/09 01:10, Pankaj Parakh wrote:

Hi Peter,

Thanks for showing your interest, I am student and I am working on a
project similar to yours i.e. to have a facility where in one can swap
scheduler in run-time, but I am in very initial state of learning so I
wanted to try a simple RR scheduler, objective of doing it is to learn
about different interfaces in modular design(introduced from 2.6.23
with CFS). I do not have any constraint with version of linux. I am
ready to take part with you provided you do not have any issue.

No. That's good.

I've attached two patches which contain the work I've done so far. They
should be applied in the following order:

define_prelim_cpu_pisch_drv.patch
implement_spbrr_cpu_pisch_dvr.patch

and will result in two schedulers: the default CFS 'fair' (cfs_fair)
scheduler and a simple priority based round robin (spbrr) scheduler; being
available for selection at boot time and run time.

To select a scheduler at boot time just add 'cpu_pisch=cfs_fair' or
'cpu_pisch=spbrr' to the boot command line.

To select a scheduler at run time (as root) do:

echo -n 'cfs_fair'> /sys/kernel/cpu_pisch/name

or

echo -n 'spbrr'> /sys/kernel/cpu_pisch/name

The first step in adding your own scheduler would be to make a copy of the
file kernel/cpu_pisch_spbrr.c and then modify it. You will also need to
modify:

kernel/sched.c
kernel/cpu_pisch_drv.c
kernel/Kconfig.cpu_pisch

Hopefully, the required changes are obvious. If not don't hesitate to ask
questions. Also if you feel the need to modify the scheduler interface
(defined in include/linux/cpu_pisch_drv.h) feel free BUT think very
carefully about it and try not to make things too complex.

I am working on another scheduler (a simple entitlement based round robin
(sebrr) scheduler) which I hope to have finished before I publicly release
the patches.

If you wish to have your scheduler included just send it to me as a patch
which applies on top of the ones that I've attached.

Cheers
Peter
--
Peter Williams pwil3058@xxxxxxxxxxxxxx

"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce


Hi Peter,

To which version of Linux Kernel should I apply the given patch.



Those patches were against 2.6.32-rc5 but they may also apply cleanly to later versions.

--
Peter Williams pwil3058@xxxxxxxxxxxxxx

"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
--
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/