HP Scheduler Information
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: 
http://lse.sourceforge.net/scheduling/results012501/status.html#Load%20Balancing Hubertus Franke

?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