Re: [Fwd: [-mm] Add an owner to the mm_struct (v9)]

From: Oleg Nesterov
Date: Tue Apr 15 2008 - 17:01:01 EST


On 04/15, Paul Menage wrote:
>
> On Tue, Apr 15, 2008 at 10:13 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> >
> > Let's suppose the process with a lot of threads does exit_group() and nobody
> > else uses this ->mm. How many time we will re-assign mm->owner and iterate
> > over the all threads in system ?
> >
>
> In general we won't get to the third loop, since one of the first two
> loops (children or siblings) will find another mm user.

Well yes, the second loop checks parent->children ... all sub-threads have
the same parent.

I'd suggest to use ->real_parent though. And the third loop could be

for_each_process(g) {
c = g;
do {
if (!c->mm)
continue;
if (c->mm != mm)
break;
goto assign_new_owner;
} while_each_thread(g, c);
}

Still. can't we make mm->mm_users_list ?

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/