1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
PREREQUISITES:
--------------
This package is released under the terms of the GPL2; you can read it in the
file LICENSE. Use at your own risk.
SCHED_NORMAL, SCHED_FIFO and SCHED_RR are the supported out of the box
by every linux-kernel.
If you want to use special scheduling policies, get the according patches
listed below.
o SCHED_BATCH:
Kernel 2.4.18+ with Ingo Molnar's O(1)-sched-patch
[ http://www.kernel.org/pub/linux/kernel/people/mingo ]
Kernel 2.6.16+ now have support for SCHED_BATCH.
Con Kolivas also maintains patches for 2.6.
[ http://ck.kolivas.org/patches/2.6 ]
o SCHED_ISO and SCHED_IDLEPRIO:
2.6.X and special patches by Con Kolivas
[ http://ck.kolivas.org/patches/2.6 ]
o CPU-AFFINITY:
kernel 2.5.8 or later
RedHat9 does contain a patched kernel that supports CPU-affinity
for 2.4.X the -aa series also contain support for CPU-affinity
[ http://www.kernel.org/pub/linux/kernel/people/andrea ]
INSTALLING:
-----------
If you want to build WITH CPU-affinity support, do
#> make
If that gives you errors about affinity or sched_setaffinity, you don't
have your system ready for affinity - likely you have a too old glibc
without that support.
To install, type:
#> make install
The default prefix is /usr/local, so the binary will be put into
/usr/local/bin, the man-page into /usr/local/man/man8; additional docs are put
into $PREFIX/share/doc/schedtool.
You may change the destination in the Makefile.
You can define DEBUG (either by adding -DDEBUG to CFLAGS in the Makefile
or specifying them to make) to get additional output.
- -- - -- - -- -
For the curious, look into:
/usr/src/linux/include/linux/sched.h
and locate the following:
/*
* Scheduling policies
*/
#define SCHED_OTHER 0
#define SCHED_FIFO 1
#define SCHED_RR 2
|