Re: additional oom-killer tuneable worth submitting?

From: Chris Friesen
Date: Thu Dec 07 2006 - 16:25:38 EST


Jesper Juhl wrote:

How does "oomthresh" and "oomadj" affect each other?

If memory consumption is less than "oomthresh", that process is simply bypassed. (Equivalent to oomkilladj==OOM_DISABLE.) Otherwise, continue processing as normal.

Default "oomthresh" value for a new process is 0 (zero) I assume -
right? If not, then I'd suggest that it should be.

Correct.

What happens when a process fork()s? Does the child enherit the
parents "oomthresh" value?

Currently it does not. This is to allow for different memory access patterns by parent/child. And exec() wipes it as well.

Would it make sense to make "oomthresh" apply to process groups
instead of processes?

Hmm...it might make sense given that the point of the group is to manage tasks together...but it would make accounting more tricky. Currently it's just a very simple comparison of p->mm->total_vm against the threshold in badness().

What happens in the case where the OOM killer really, really needs to
kill one or more processes since there is not a single drop of memory
available, but all processes are below their configured thresholds?

Then the system wasn't properly engineered. <grin>

In this case you reboot.

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