Re: [RFC] [PATCH] Cgroup based OOM killer controller

David Rientjes
2009-01-27T07:42:01Z

On Tue, 27 Jan 2009, KOSAKI Motohiro wrote:

> Confused.
>
> As far as I know, people want the method of flexible cache treating.
> but oom seems less flexible than userland notification.
>
> Why do you think notification is bad?
>

There're a couple of proposals that have been discussed recently that
share some functional behavior.

One is the cgroup oom notifier that allows you to attach a task to wait on
an oom condition for a collection of tasks. That allows userspace to
respond to the condition by droping caches, adding nodes to a cpuset,
elevating memory controller limits, sending a signal, etc. It can also
defer to the kernel oom killer as a last resort.

The other is /dev/mem_notify that allows you to poll() on a device file
and be informed of low memory events. This can include the cgroup oom
notifier behavior when a collection of tasks is completely out of memory,
but can also warn when such a condition may be imminent. I suggested that
this be implemented as a client of cgroups so that different handlers can
be responsible for different aggregates of tasks.

I think the latter is a much more powerful tool and includes all the
behavior of the former. It preserves the oom killer as a last resort for
the kernel and defers all preference killing or lowmem responses to
userspace.