[PATCH] CPU Scheduler Evaluation tool for 2.6.8-rc1
From: Peter Williams
Date: Sat Jul 17 2004 - 18:58:34 EST
The HYDRA patch for facilitating the comparative evaluation of
alternative CPU schedulers is now available for the 2.6.8-rc1 kernel.
This patch allows the run time selection of CPU scheduler between a
slightly modified version of Con Kolivas's staircase scheduler ("sc")
(including the SCHED_BATCH and SCHED_ISO scheduler classes), the
priority based scheduler with interactive and throughput bonuses ("pb")
and an entitlement based scheduler with interactive and throughput
bonuses ("eb"). This patch is available for download at:
<http://prdownloads.sourceforge.net/cpuse/patch-2.6.8-rc1-spa_hydra_FULL-v2.0?download>
The file /proc/sys/kernel/cpusched/mode enables control of which
scheduler is in control. The string "sc" is used to select the
staircase scheduler, "pb" to select the priority based scheduler and
"eb" to select the entitlement based scheduler described above. The
control of other scheduling parameters is facilitated by other files in
the directory /proc/sys/kernel/cpusched as follows (in alphabetical order):
base_promotion_interval - controls the interval between successive (anti
starvation) runnable task promotions (for the "pb" scheduler this is
effectively a means to control the "severity" of "nice"). The actual
interval will be (number of runnable tasks - 1) times this value in msecs.
compute - "sc" scheduler boolean parameter
cpu_hog_threshold - for the "pb" and "eb" schedulers this parameter sets
the CPU usage rate (in parts per thousand) above which tasks will be
considered to be CPU hogs and start to lose interactive bonus points (if
they have any)
hog_sub_cycle_threshold - for the "pb" and "eb" schedulers this the
number of time slices above which calculation of various rates will be
made on a per time slice basis rather than a full scheduling cycle (i.e.
from one "wake up" to the next). This is necessary to ensure that very
hard CPU spinners usage statistics are representative of the current
system state.
ia_threshold - for the "pb" and "eb" schedulers this is the sleepiness
(i.e. the ratio of sleep time per cycle to sleep plus cpu time per
cycle) (in parts per thousand) above which a task will be considered to
be interactive and have its interactive bonus increased asymptotically
towards the maximum.
initial_ia_bonus - for the "pb" and "eb" schedulers this is the
interactive bonus given to newly forked processes.
interactive - "sc" scheduler boolean parameter
log_at_exit - boolean parameter to control whether tasks' CPU scheduling
statistics are logged at exit
max_ia_bonus - the maximum interactive bonus that a task can receive
max_tpt_bonus - the maximum throughput bonus that a task can receive
sched_iso_threshold - for the "eb" and "pb" this is a CPU usage
threshold (in parts per thousand) above which SCHED_ISO tasks will cease
to get special treatment
time_slice - the time slice size in msecs that will be given to each task
To facilitate the viewing/setting of these parameters a primitive GUI,
which also displays per CPU scheduling statistics for the system, is
available at:
<http://prdownloads.sourceforge.net/cpuse/gcpuctl_hydra-1.2.tar.gz?download>
Stand alone versions of the three schedulers are available from:
<https://sourceforge.net/projects/cpuse/>
The stand alone "pb" and "eb" schedulers do not currently support
SCHED_BATCH and SCHED_ISO.
Peter
--
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/