[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4B9586D3.2020109@kernel.org>
Date: Tue, 09 Mar 2010 08:22:59 +0900
From: Tejun Heo <tj@...nel.org>
To: Oleg Nesterov <oleg@...hat.com>
CC: linux-kernel@...r.kernel.org, rusty@...tcorp.com.au,
sivanich@....com, heiko.carstens@...ibm.com,
torvalds@...ux-foundation.org, mingo@...e.hu, peterz@...radead.org,
dipankar@...ibm.com, josh@...edesktop.org,
paulmck@...ux.vnet.ibm.com, akpm@...ux-foundation.org
Subject: Re: [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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists