lkml.org 
[lkml]   [2010]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2/4] stop_machine: reimplement using cpuhog
    Hello,

    On 03/09/2010 04:06 AM, Oleg Nesterov wrote:
    > On 03/09, Tejun Heo wrote:
    >>
    >> int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus)
    >> {
    >> ...
    >> + /* Set the initial state and hog all online cpus. */
    >> + set_state(&smdata, STOPMACHINE_PREPARE);
    >> + return hog_cpus(cpu_online_mask, stop_cpu, &smdata);
    >> }
    >
    > Could you please confirm this is correct?
    >
    > I am not sure I understand how the code looks with the patch applied,
    > but the lockless set_state() above can confuse another stop_machine()
    > in progress?

    set_state() now modifies smdata->state and smdata is now local
    variable of __stop_machine(). stop_machine instances don't have any
    shared resource anymore. Synchronization and resource sharing are all
    cpuhog's responsibilities.

    Thanks.

    --
    tejun


    \
     
     \ /
      Last update: 2010-03-09 00:23    [W:0.023 / U:0.672 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site