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    [W:2.260 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site