Re: 2.5.74-mm1

From: Anton Blanchard (anton@samba.org)
Date: Sat Jul 05 2003 - 00:21:02 EST


> 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/



This archive was generated by hypermail 2b29 : Mon Jul 07 2003 - 22:00:24 EST