public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] CPU scheduler evaluation tool
@ 2004-06-28  6:37 Peter Williams
  2004-07-02  8:16 ` Peter Williams
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Williams @ 2004-06-28  6:37 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Michal Kaczmarski, Shane Shrybman

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

Peter
-- 
Peter Williams                                   pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
  -- Ambrose Bierce


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] CPU scheduler evaluation tool
  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
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Williams @ 2004-07-02  8:16 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Michal Kaczmarski, Shane Shrybman

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.

-- 
Peter Williams                                   pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
  -- Ambrose Bierce


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] CPU scheduler evaluation tool
  2004-07-02  8:16 ` Peter Williams
@ 2004-07-07  8:29   ` Peter Williams
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Williams @ 2004-07-07  8:29 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Michal Kaczmarski, Shane Shrybman

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-07-07 14:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox