Re: [patch] mm: oom_kill: revert 3% system memory bonus for privileged tasks

David Rientjes
2014-01-16T00:18:53Z

On Wed, 15 Jan 2014, Johannes Weiner wrote:

> With a63d83f427fb ("oom: badness heuristic rewrite"), the OOM killer
> tries to avoid killing privileged tasks by subtracting 3% of overall
> memory (system or cgroup) from their per-task consumption. But as a
> result, all root tasks that consume less than 3% of overall memory are
> considered equal, and so it only takes 33+ privileged tasks pushing
> the system out of memory for the OOM killer to do something stupid and
> kill sshd or dhclient. For example, on a 32G machine it can't tell
> the difference between the 1M agetty and the 10G fork bomb member.
>
> The changelog describes this 3% boost as the equivalent to the global
> overcommit limit being 3% higher for privileged tasks, but this is not
> the same as discounting 3% of overall memory from _every privileged
> task individually_ during OOM selection.
>
> Revert back to the old priority boost of pretending root tasks are
> only a quarter of their actual size.
>

Unfortunately, I think this could potentially be too much of a bonus. On
your same 32GB machine, if a root process is using 18GB and a user process
is using 14GB, the user process ends up getting selected while the current
discount of 3% still selects the root process.

I do like the idea of scaling this bonus depending on points, however. I
think it would be better if we could scale the discount but also limit it
to some sane value.