Re: [PATCH 3/4] memcg: punt high overage reclaim to return-to-userland path
From: Vladimir Davydov <hidden>
Date: 2015-08-28 20:46:11
Also in:
cgroups
On Fri, Aug 28, 2015 at 07:13:22PM +0200, Michal Hocko wrote: ...
quoted
* If the allocation doesn't have __GFP_WAIT, direct reclaim is skipped. If a process performs only speculative allocations, it can blow way past the high limit. This is actually easily reproducible by simply doing "find /". VFS tries speculative !__GFP_WAIT allocations first, so as long as there's memory which can be consumed without blocking, it can keep allocating memory regardless of the high limit.It is a bit confusing that you are talking about direct reclaim but in fact mean high limit reclaim. But yeah, you are right there is no protection against GFP_NOWAIT allocations there.
Actually, memory.high by itself *is* the protection against GFP_NOWAIT
allocations, similarly to zone watermarks. W/o it we would have no other
choice but fail a GFP_NOWAIT allocation on hitting memory.max. One
should just set it so that
memory.max - memory.high > [max sum size of !__GFP_WAIT allocations
that can normally occur in a row]
That being said, currently I don't see any point in making memory.high
!__GFP_WAIT-safe.
Thanks,
Vladimir
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>