Messages in this thread | | | Date | Sat, 5 Jul 2003 15:21:02 +1000 | From | Anton Blanchard <> | Subject | Re: 2.5.74-mm1 |
| |
> 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/
| |