This is an implementation of a hierarchical fair scheduler for
Linux. "Fair" here means allocation of CPU time proportional to
preassigned weights. More precisely, processes are partitioned into
groups and each group is assigned a positive weight. Then, as long as
each group contains runnable processes, the scheduler guarantees
proportional CPU time allocation. Within a group the standard Linux
scheduler is used to pick processes to run. "Hierarchical" refers to
performing fair scheduling on several levels - groups can have
subgroups that also have weights, etc.
This idea is not new and there already exists an implementation for
Linux as part of the QLinux project, see
http://www.cs.umass.edu/~lass/software/qlinux/
The main advantage of my implementation is the SMP support (the
scheduler in QLinux is UP only).
Patches against 2.3.* and documentation can be found at
http://people.cornell.edu/pages/bdd2/hsfq/
State of the code: pre-alpha. The main functionality works as
expected. There are a few minor issues left, see the TODO list. So far
I've only tested it on UP x86; I should be getting a dual processor
x86 soon so I'd be able to test it there too.
Comments always welcome.
Borislav
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/