lkml.org 
[lkml]   [2008]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch 11/17] Implement immediate update via stop_machine_run
Hi  Mathieu,
>> it seems this patch is must, Why do you separate patch [10/17] and [11/17]?
>> this patch remove almost portion of [10/17].
>> IMHO these patch merge into 1 patch is better.
>>
>>
>
> Hi Kosaki,
>
> You are right, I will merge them and resend them in the following post.
>
Thanks

>>> +static int stop_machine_imv_update(void *imv_ptr)
>>> +{
>>> + struct __imv *imv = imv_ptr;
>>> +
>>> + if (!wrote_text) {
>>>
>> it seems racy.
>> Why don't need test_and_set?
>>
>> I think your stop_machine_run(ALL_CPUS) call fn concurrency...
>>
> The answer to this mistery is in include/linux/stop_machine.h modified
> by add-all-cpus-option-to-stop-machine-run.patch :
>
>
> /**
> * stop_machine_run: freeze the machine on all CPUs and run this function
> * @fn: the function to run
> * @data: the data ptr for the @fn()
> - * @cpu: the cpu to run @fn() on (or any, if @cpu == NR_CPUS.
> + * @cpu: if @cpu == n, run @fn() on cpu n
> + * if @cpu == NR_CPUS, run @fn() on any cpu
> + * if @cpu == ALL_CPUS, run @fn() first on the calling cpu, and then
> + * concurrently on all the other cpus
> *
> * Description: This causes a thread to be scheduled on every other cpu,
> * each of which disables interrupts, and finally interrupts are disabled
>
> Therefore, the first execution of the function is done before all other
> executions.
>
>
Ah, OK. I understand.
Thanks.




\
 
 \ /
  Last update: 2008-04-11 06:53    [W:0.052 / U:0.224 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site