From: Peter Williams <pwil3058@bigpond.net.au>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Michal Kaczmarski <fallow@op.pl>, Shane Shrybman <shrybman@aei.ca>
Subject: Re: [PATCH] CPU scheduler evaluation tool
Date: Wed, 07 Jul 2004 18:29:38 +1000 [thread overview]
Message-ID: <40EBB472.8040303@bigpond.net.au> (raw)
In-Reply-To: <40E519F1.1030200@bigpond.net.au>
Peter Williams wrote:
> Peter Williams wrote:
>
>> To facilitate the comparative evaluation of alternative CPU schedulers
>> a patch that allows the run time selection of CPU scheduler between
>> version 7.7 of Con Kolivas's staircase scheduler ("sc") and the
>> priority based scheduler with interactive and throughput bonuses
>> ("pb") has been created. This patch is available for download at:
>>
>> <http://prdownloads.sourceforge.net/cpuse/patch-2.6.7-spa_hydra_FULL-v1.2?download>
>>
>>
>> The file /proc/sys/kernel/cpusched/mode has been added to those
>> provided by the "pb" to control which of the schedulers is in
>> control. The string "sc" is used to select the staircase scheduler
>> and "pb" to select the priority based scheduler described above. The
>> staircase scheduler control parameters "compute" and "interactive"
>> have been moved into /proc/sys/kernel/cpusched along with the "pb"
>> scheduler control parameters. The scheduler starts in the "sc" mode.
>> A primitive Glade/PyGTK GUI that provides the ability to switch
>> between schedulers and to control scheduler parameters is available at:
>>
>> <http://prdownloads.sourceforge.net/cpuse/gcpuctl_hydra-1.0.tar.gz?download>
>>
>>
>> This GUI should also work with a standard version of Con Kolivas's
>> staircase scheduler as well as the version based on my single priority
>> array patch:
>>
>> <http://prdownloads.sourceforge.net/cpuse/patch-2.6.7-spa_sc_FULL-v1.2?download>
>>
>>
>> and the basic priority based scheduler:
>>
>> <http://prdownloads.sourceforge.net/cpuse/patch-2.6.7-spa_pb_FULL-v1.2?download>
>>
>>
>> and, for those so inclined, these patches broken into smaller parts
>> for easier digestion are available at:
>>
>> <https://sourceforge.net/projects/cpuse/>
>>
>> An entitlement based "eb" scheduler will be added to the selection
>> available in the near future.
>>
>> Controls:
>>
>> base_promotion_interval -- (milliseconds) controls the interval
>> between successive promotions (is multiplied by the number of active
>> tasks on the CPU in question) NB no promotion occurs if there are less
>> than 2 active tasks
>>
>> time_slice -- (milliseconds) the size of the time slice (i.e. how long
>> it will be allowed to hold the CPU before it is kicked off to allow
>> other tasks a chance to run) that is allocated to a task when it
>> becomes active or finishes a time slice. (min is 1 millisec and max
>> is 1 second).
>>
>> max_ia_bonus -- (a value between 0 and 10) that determines the maximum
>> interactive bonus that a task can acquire
>>
>> initial_ia_bonus -- (a value between 0 and 10) that determines the
>> initial interactive bonus that a newly forked task will be given.
>> This value will be capped by the max_ia_bonus.
>>
>> ia_threshold -- (parts per thousand) is the sleep to (sleep + on_cpu)
>> ratio above which a task will have its interactive bonus increased
>> asymptotically towards the maximum
>>
>> cpu_hog_threshold -- (parts per thousand) is the usage rate above
>> which a task will be considered a CPU hog and start to lose
>> interactive bonus points if it has any
>>
>> max_tpt_bonus -- (a value between 0 and 9) that determines the maximum
>> throughput bonus that tasks may be awarded
>>
>> log_at_exit - (0 or 1) turns off/on the logging of tasks' scheduling
>> statistics at exit. This feature is useful for determining the
>> scheduling characteristics of relatively short lived tasks that run as
>> part of some larger job such as a kernel build where trying to get
>> time series data is impractical.
>>
>> compute -- (0 or 1) turn on/off the staircase schedulers "compute" switch
>>
>> interactive -- (0 or 1) turn on/off the staircase schedulers
>> "interactive" mode
>
>
> Updated versions of this patch that include the staircase 7.8 updates
> and an entitlement based scheduler is available at:
>
> <http://prdownloads.sourceforge.net/cpuse/patch-2.6.7-spa_hydra_FULL-v1.3?download>
>
>
> Because of a problem with VERY CPU bound tasks it has been necessary to
> change the way the control statistics for these type of tasks are
> calculated. This has resulted in the introduction of another control
> parameter hog_sub_cycle_threshold which is an integer value and if a
> task uses more than this number of time slices without sleeping its
> average delay and cpu statistics will be calculated over the cpu:->runq
> sub cycle instead of the full scheduling cycle. A modified version of
> the primitive GUI for manipulating parameters is available at:
>
> <http://prdownloads.sourceforge.net/cpuse/gcpuctl_hydra-1.1.tar.gz?download>
>
>
> A stand alone version of the entitlement based scheduler will appear in
> due course.
>
This is now available for download at:
<https://sourceforge.net/projects/cpuse/>
in the package spa-eb-linux along with version 1.5 (a bug fix version)
of the other schedulers.
--
Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
prev parent reply other threads:[~2004-07-07 14:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-28 6:37 [PATCH] CPU scheduler evaluation tool Peter Williams
2004-07-02 8:16 ` Peter Williams
2004-07-07 8:29 ` Peter Williams [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40EBB472.8040303@bigpond.net.au \
--to=pwil3058@bigpond.net.au \
--cc=fallow@op.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=shrybman@aei.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox