lkml.org 
[lkml]   [2008]   [Jul]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: current linux-2.6.git: cpusets completely broken


On Tue, 15 Jul 2008, Dmitry Adamushko wrote:
>
> cpu_clear(cpu, cpu_active_map); _alone_ does not guarantee that after
> its completion, no new tasks can appear on (be migrated to) 'cpu'.

But I think we should make it do that.

I do realize that we "queue" processes, but that's part of the whole
complexity. More importantly, the people who do that kind of asynchronous
queueing don't even really care - *if* they cared about the process
_having_ to show up on the destination core, they'd be waiting
synchronously and re-trying (which they do).

So by doing the test for cpu_active_map not at queuing time, but at the
time when we actually try to do the migration, we can now also make that
cpu_active_map be totally serialized.

(Of course, anybody who clears the bit does need to take the runqueue lock
of that CPU too, but cpu_down() will have to do that as it does the
"migrate away live tasks" anyway, so that's not a problem)

Linus


\
 
 \ /
  Last update: 2008-07-15 01:09    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site