Re: current linux-2.6.git: cpusets completely broken

From: Linus Torvalds
Date: Mon Jul 14 2008 - 19:06:27 EST




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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/