On 07/01/2015 09:37 AM, Michal Hocko wrote: > Fix this issue by limiting the wait to reclaim triggered by __GFP_FS > allocations to make sure we are not called from filesystem paths which > might be doing exactly this kind of IO optimizations. The page fault > path, which is the only path that triggers memcg oom killer since 3.12, > shouldn't require GFP_NOFS and so we shouldn't reintroduce the premature > OOM killer issue which was originally addressed by the heuristic. > > As per David Chinner the xfs is doing similar thing since 2.6.15 already > so ext4 is not the only affected filesystem. Moreover he notes: > : For example: IO completion might require unwritten extent conversion > : which executes filesystem transactions and GFP_NOFS allocations. The > : writeback flag on the pages can not be cleared until unwritten > : extent conversion completes. Hence memory reclaim cannot wait on > : page writeback to complete in GFP_NOFS context because it is not > : safe to do so, memcg reclaim or otherwise. I remember fixing something like this back in the 2.2 days. Funny how these bugs keep coming back. > Cc: stable # 3.6+ > Fixes: c3b94f44fcb0 ("memcg: further prevent OOM with too many dirty pages") > Reported-by: Nikolay Borisov <kernel@xxxxxxxx> > Signed-off-by: Michal Hocko <mhocko@xxxxxxx> Reviewed-by: Rik van Riel <riel@xxxxxxxxxx> -- All rights reversed -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>