User: Password:
|
|
Subscribe / Log in / New account

CPU Scheduler Evaluation tool for 2.6.8-rc1

From:  Peter Williams <pwil3058@bigpond.net.au>
To:  Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject:  [PATCH] CPU Scheduler Evaluation tool for 2.6.8-rc1
Date:  Sun, 18 Jul 2004 09:57:21 +1000
Cc:  Michal Kaczmarski <fallow@op.pl>, Shane Shrybman <shrybman@aei.ca>

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@bigpond.net.au

"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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds