public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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


      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