Re: [PATCH V3] KSM: allow dedup all tasks memory

From: Timofey Titovets
Date: Tue Nov 13 2018 - 12:45:29 EST


ÐÑ, 13 ÐÐÑÐ. 2018 Ð. Ð 20:27, Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx>:
>
> On 13.11.2018 18:10, Timofey Titovets wrote:
> > You mean try do something, like that right?
> >
> > read_lock(&tasklist_lock);
> > <get reference to task>
> > task_lock(task);
> > read_unlock(&tasklist_lock);
> > last_pid = task_pid_nr(task);
> > ksm_import_task_vma(task);
> > task_unlock(task);
>
> No, task_lock() uses spin_lock() under the bonnet, so this will be the
> same.
>
> Since the sole reason you have to lock/acquire/get a reference to
> task_struct here is to prevent it from disappearing, I was thinking
> about using get_task_struct(), which just increases atomic
> task_struct.usage value (IOW, takes a reference). I *hope* this will be
> enough to prevent task_struct from disappearing in the meantime.
>
> Someone, correct me if I'm wrong.

That brilliant, i just missing that api.
That must do exactly what i want.

Thanks!

> --
> Oleksandr Natalenko (post-factum)
>