[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4AE24C2E.70208@bigpond.net.au>
Date: Sat, 24 Oct 2009 10:37:02 +1000
From: Peter Williams <pwil3058@...pond.net.au>
To: Pankaj Parakh <me.pankajparakh@...il.com>
CC: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
XingChao Wang <wxc200@...il.com>
Subject: Re: How to add scheduler
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@...pond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
View attachment "define_prelim_cpu_pisch_drv.patch" of type "text/x-patch" (18179 bytes)
View attachment "implement_spbrr_cpu_pisch_dvr.patch" of type "text/x-patch" (7586 bytes)
Powered by blists - more mailing lists