The idea here is when we find a situation that we just scheduled in anRT task and we either pushed a lesser RT task away or more than one RTtask was scheduled on this CPU before scheduling occurred.

The answer that this patch does is to do a O(n) search of CPUs for theCPU with the lowest prio task running. When that CPU is found the nexthighest RT task is pushed to that CPU.

Some notes:

1) no lock is taken while looking for the lowest priority CPU. When oneis found, only that CPU's lock is taken and after that a check is madeto see if it is still a candidate to push the RT task over. If not, wetry the search again, for a max of 3 tries.

2) I only do this for the second highest RT task on the CPU queue. Thiscan be easily changed to do it for all RT tasks until no more can bepushed off to other CPUs.

This is a simple approach right now, and is only being posted forcomments. I'm sure more can be done to make this more efficient or justsimply better.