|
No load-balancing. Not intended as a general
purpose solution.(Mike
Kravetz - Kernel ML Archive)
|
less at nonglobal decisions(Ingo)
|
The HP scheduler completely separates the per-CPU
runqueues and does not take preemption goodness or alike into account.
This can lead to unfair proportionment of CPU cycles, strong priority inversion
and a potential lack of interactivity.(Hubertus
Franke)
|
The HP scheduler completely separates the per-CPU
runqueues and does not take preemption goodness or alike into account.
This can lead to unfair proportionment of CPU cycles, strong priority inversion
and a potential lack of interactivity. (Hubertus
Franke)
|
Let me stress that HP scheduler is not meant to
be a replacement for the current scheduler. The HP scheduler patch allows
the current scheduler to be replaced by another scheduler by loading a
module in special cases. HP is providing three different loadable scheduler
modules - Processor sets, Constant time scheduler, and Multi-runqueue scheduler.
Each one of these is geared towards a specific requirement. I would not
suggest using any of these for a generalized case. Processor sets scheduler
is designed to make scheduling decisions on a per-cpu basis and not global
basis. All we are trying to do is to make the current scheduler modular
so we CAN load an alternate scheduling policy module in cases where the
process mix requires a different scheduling policy or the site policy require
a different scheduling policy. Aziz
|
Loadable Scheduler Modules on Linux (beta)
Hewlett-Packard Management Solutions Lab (MSL) HP Whitepaper EXCERPTS The source bases used for operating system changes were Linux 2.2.14-5.0 (the popular Redhat 6.2 distribution), Linux 2.2.16, and the Linux 2.4 beta-test version 7. The test platforms were one and four-CPU Pentium boxes. Scheduling in each processor set is done independently. A bundle of utilities, tests, and man pages accompany the example for improved usability. there is a profusion of proprietary schedulers for Linux: Qlinux Fair Queuing SGI CPU sets Real-time extensions User-based fair scheduler by Rik van Riel Others under development like ShareII None of these are loadable modules. |
Kanoj, our cpu-pooling + loadbalancing allows you
to do that. The system adminstrator can specify at runtime through a /proc
filesystem interface the cpu-pool-size, whether loadbalacing should take
place. We can put limiting to the local cpu-set during reschedule_idle
back into the code, to make it complete and compatible with the approach
that Andrea has taken.This way, one can fully isolate or combine cpu-sets.here
is the code for the pooling. http://lse.sourceforge.net/scheduling/LB/2.4.1-MQpool.loadbalancing
and /proc system combined in this module. http://lse.sourceforge.net/scheduling/LB/loadbalance.c.a
writeup explaining this concept is available under
http://lse.sourceforge.net/scheduling/LB/poolMQ.html.Prerequisite is the MQ scheduler... http://lse.sourceforge.net/scheduling/2.4.1.mq1-schedHubertus Franke |
Our
patch does various things.
(a) limit search for a task to a admin specified set of cpu's during schedule().. (b) limits search for a preemptable task to another set of cpu's during reschedule_idle() <need to reactivate this functionality 10 lines of code> (c) loadbalancing, i.e. moving from queue to queue. Currently we balance within a set and across sets. See
for results for various combinations of poolsizes and balancings:
|
?Just
dump idea - why not make scheduler switchable with modules - so users could
select any scheduler they want ? This should not be that hard and would
make it easy to replace scheduler at runtime so everyone could easily try
what's the best for him/her.??This
concept I think is used in Solaris .. as they have dynamic loadable
schedulers..Trojanowski |
|
|
|