Michal Hocko wrote:
The comment above the check is misleading but now you are allowing to
fail all ALLOC_NO_WATERMARKS (without __GFP_NOFAIL) allocations before
entering the direct reclaim and compaction. This seems incorrect. What
about __GFP_MEMALLOC requests?
So, you want __GPP_MEMALLOC to retry forever unless TIF_MEMDIE is set, don't
you?
I think the check for TIF_MEMDIE makes more sense here.
Since we already failed to allocate from memory reserves, I don't know if
direct reclaim and compaction can work as expected under such situation.
Maybe the OOM killer is invoked, but I worry that the OOM victim gets stuck
because we already failed to allocate from memory reserves. Unless next OOM
victims are chosen via timeout, I think that this can be one of triggers
that lead to silent hangup... (Just my suspect. I can't prove it because I
can't go to in front of customers' servers and check SysRq.)
--
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>