> Using the scheduler i'm working on and setting a trigger load level of 2,
> as soon as the idle is scheduled it'll go to grab the task waiting on the
> other cpu and it'll make it running.
That rapidly gets you thrashing around as I suspect you've found.
I'm currently using the following rule in wake up
if(current->mm->runnable > 0) /* One already running ? */
cpu = current->mm->last_cpu;
cpu = idle_cpu();
cpu = cpu_num[fast_fl1(runnable_set)]
If we are running threads with this mm on a cpu throw them at the
If there is an idle CPU use it
Take the mask of currently executing priority levels, find the last
set bit (lowest pri) being executed, and look up a cpu running at
Then the idle stealing code will do the rest of the balancing, but at least
it converges towards each mm living on one cpu core.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to email@example.com
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sat Dec 15 2001 - 21:00:15 EST