Re: [RESEND v12 0/6] cgroup-aware OOM killer

From: Michal Hocko
Date: Tue Oct 31 2017 - 03:54:19 EST


On Mon 30-10-17 14:36:39, David Rientjes wrote:
> On Fri, 27 Oct 2017, Roman Gushchin wrote:
>
> > The thing is that the hierarchical approach (as in v8), which are you pushing,
> > has it's own limitations, which we've discussed in details earlier. There are
> > reasons why v12 is different, and we can't really simple go back. I mean if
> > there are better ideas how to resolve concerns raised in discussions around v8,
> > let me know, but ignoring them is not an option.
> >
>
> I'm not ignoring them, I have stated that we need the ability to protect
> important cgroups on the system without oom disabling all attached
> processes. If that is implemented as a memory.oom_score_adj with the same
> semantics as /proc/pid/oom_score_adj, i.e. a proportion of available
> memory (the limit), it can also address the issues pointed out with the
> hierarchical approach in v8.

No it cannot and it would be a terrible interface to have as well. You
do not want to permanently tune oom_score_adj to compensate for
structural restrictions on the hierarchy.

> If this is not the case, could you elaborate
> on what your exact concern is and why we do not care that users can
> completely circumvent victim selection by creating child cgroups for other
> controllers?
>
> Since the ability to protect important cgroups on the system may require a
> heuristic change, I think it should be solved now rather than constantly
> insisting that we can make this patchset complete later and in the
> meantime force the user to set all attached processes to be oom disabled.

I believe, and Roman has pointed that out as well already, that further
improvements can be implemented without changing user visible behavior
as and add-on. If you disagree then you better come with a solid proof
that all of us wrong and reasonable semantic cannot be achieved that
way.
--
Michal Hocko
SUSE Labs