lkml.org 
[lkml]   [2018]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH V3] KSM: allow dedup all tasks memory
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.

--
Oleksandr Natalenko (post-factum)

\
 
 \ /
  Last update: 2018-11-13 18:27    [W:0.189 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site