lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ