Re: OOM behavior in constrained memory situations

From: Andrew Morton
Date: Mon Feb 06 2006 - 16:09:06 EST


Christoph Lameter <clameter@xxxxxxxxxxxx> wrote:
>
> There are situations in which memory allocations are restricted by policy,
> by a cpuset or by type of allocation.
>
> I propose that we need different OOM behavior for the cases in which the
> user has imposed a limit on what type of memory to be allocated. In that
> case the application should be terminate with OOM. The OOM killer should
> not run.
>
> The huge page allocator has already been modified to return a Bus Error
> because it would otherwise trigger the OOM killer. Its a bit strange
> if an app returns a Bus Error because it its out of memory.
>
> Could we modify the system so that the application requesting
> memory is terminated with an out of memory condition if
>
> 1. No huge pages are available anymore.
>
> 2. The application has set a policy that restricts allocation to
> certain nodes.
>
> 3. An application is restricted by a cpuset to certain nodes.
>
> 4. An application has requested large amounts of memory and the
> allocation fails.
>
> That should avoid the OOM killer in most situations.

Do we really want to kill the application? A more convetional response
would be to return NULL from the page allocator and let that trickle back.

The hugepage thing is special, because it's a pagefault, not a syscall.
-
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/