Re: [PATCH RFC] mm: don't raise MEMCG_OOM event due to failed high-order allocation

From: Roman Gushchin
Date: Tue Sep 11 2018 - 11:35:11 EST

On Tue, Sep 11, 2018 at 02:41:04PM +0200, peter enderborg wrote:
> On 09/11/2018 02:11 PM, Michal Hocko wrote:
> > Why is this a problem though? IIRC this event was deliberately placed
> > outside of the oom path because we wanted to count allocation failures
> > and this is also documented that way
> >
> > oom
> > The number of time the cgroup's memory usage was
> > reached the limit and allocation was about to fail.
> >
> > Depending on context result could be invocation of OOM
> > killer and retrying allocation or failing a
> >
> > One could argue that we do not apply the same logic to GFP_NOWAIT
> > requests but in general I would like to see a good reason to change
> > the behavior and if it is really the right thing to do then we need to
> > update the documentation as well.
> >
> Why not introduce a MEMCG_ALLOC_FAIL in to memcg_memory_event? contains events which are useful (actionable) for userspace.
E.g. memory.high event may signal that high limit is reached and the workload
is slowing down by forcing into the direct reclaim.

Kernel allocation failure is not a userspace problem, so it's not actionable.
I'd say memory.stat can be a good place for a such counter.