[lkml]   [2001]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Linux 2.4.17-pre5
> 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)]

that is
If we are running threads with this mm on a cpu throw them at the
same core
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
that priority

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
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:13    [W:0.174 / U:41.204 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site