Re: [RFC PATCH] locks:Remove spinlock in unshare_files

Ling Ma
2020-03-16T13:25:23Z

Any comments ?

Thanks
Ling

<ling.ma.program@gmail.com> 于2020年3月13日周五 上午11:09写道：
>
> From: Ma Ling <ling.ml@antfin.com>
>
> Processor support atomic operation for long/int/short/char type,
> we use the feature to avoid spinlock, which cost hundreds cycles.
>
> Appreciate your comments
> Ling
>
> Signed-off-by: Ma Ling <ling.ml@antfin.com>
> ---
> kernel/fork.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/kernel/fork.c b/kernel/fork.c
> index 60a1295..fe54600 100644
> --- a/kernel/fork.c
> +++ b/kernel/fork.c
> @@ -3041,9 +3041,7 @@ int unshare_files(struct files_struct **displaced)
> return error;
> }
> *displaced = task->files;
> - task_lock(task);
> - task->files = copy;
> - task_unlock(task);
> + WRITE_ONCE(task->files, copy);
> return 0;
> }
>
> --
> 1.8.3.1
>