Re: 2.5.74-mm1

Anton Blanchard (anton@samba.org)
Sat, 5 Jul 2003 15:21:02 +1000


> Look at select_bad_process(), and the ->mm test in badness(). pdflush
> can never be chosen.
>
> Nevertheless, there have been several report where kernel threads _are_
> being hit my the oom killer. Any idea why that is?

Milton and I were just looking at this and it seems there is no locking
to prevent p->mm ending up NULL due to exit. And if p->mm does end up
NULL, you go off and kill all your kernel threads :)

Anton

read_lock(&tasklist_lock);
p = select_bad_process();

...

oom_kill_task(p);
/*
* kill all processes that share the ->mm (i.e. all threads),
* but are in a different thread group
*/
do_each_thread(g, q)
if (q->mm == p->mm && q->tgid != p->tgid)
oom_kill_task(q);
while_each_thread(g, q);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/