[ANNOUNCE][RFC] PlugSched-6.0 for 2.6.12 and 2.6.13-rc6

From: Peter Williams
Date: Mon Aug 22 2005 - 21:04:28 EST


This version contains the following changes:

1. upgrade the staircase scheduler to version 11.6,
2. major reorganization of the spa_no_frills and zaphod code to clean up the mechanism by which they share code. This includes the definition of a simple interface which can be used to extend spa_no_frills to create new schedulers relatively easily, and
3. a new scheduler, spa_ws, which is an extension of spa_no_frills intended for use on work stations.

The spa_ws aspires to provide good interactive responsiveness and glitch free audio/video playing by giving tasks that are forking or waking from a sleep a "latency bonus". The latency bonus is composed of a small fixed bonus plus a component based on the tasks sleepiness. Certain tasks (e.g. those with a "nice" value greater than zero or tagged with the TASK_NONINTERACTIVE flag do not receive any bonus as it is assumed that latency is not an issue for these tasks). This scheduler tries to identify audio/video tasks based on the regularity of their wake intervals and their length (currently between 10 and 100 milliseconds) and if it does so gives them a bonus one greater than the maximum that could be attained for other tasks subject to their cpu usage rate being less than a specified minimum. The mechanisms involved are very simple in an attempt to not degrade the compute performance of the scheduler.

A patch for 2.6.12 is available at:

<http://prdownloads.sourceforge.net/cpuse/plugsched-6.0-for-2.6.12.patch?download>

and for 2.6.13-rc6 at:

<http://prdownloads.sourceforge.net/cpuse/plugsched-6.0-for-2.6.13-rc6.patch?download>

Very Brief Documentation:

You can select a default scheduler at kernel build time. If you wish to
boot with a scheduler other than the default it can be selected at boot
time by adding:

cpusched=<scheduler>

to the boot command line where <scheduler> is one of: ingosched,
nicksched, staircase, spa_no_frills, spa_ws or zaphod. If you don't change the default when you build the kernel the default scheduler will be ingosched (which is the normal scheduler).

The scheduler in force on a running system can be determined by the
contents of:

/proc/scheduler

Control parameters for the scheduler can be read/set via files in:

/sys/cpusched/<scheduler>/

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/