Messages in this thread | | | Date | Thu, 26 Apr 2018 17:20:53 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 4/4] exit: Lockless iteration over task list in mm_update_next_owner() |
| |
On Thu, Apr 26, 2018 at 04:52:39PM +0300, Kirill Tkhai wrote: > >> > >> 1)for_each_process(g) copy_process() > >> p->mm = mm > >> smp_rmb(); smp_wmb() implied by alloc_pid() > >> if (g->flags & PF_KTHREAD) list_add_tail_rcu(&p->tasks, &init_task.tasks) > >> > >> 2)for_each_thread(g, c) copy_process() > >> p->mm = mm > >> smp_rmb(); smp_wmb() implied by alloc_pid() > >> tmp = READ_ONCE(c->mm) list_add_tail_rcu(&p->thread_node, ...)
For these two; what's the purpose of the smp_rmb()? which loads are ordered?
| |