Vlastimil Babka wrote:
On 5.10.2015 16:44, Michal Hocko wrote:Did You hit a race described below?
So I can see basically only few ways out of this deadlock situation.
Either we face the reality and allow small allocations (withtout
__GFP_NOFAIL) to fail after all attempts to reclaim memory have failed
(so after even OOM killer hasn't made any progress).
Note that small allocations already *can* fail if they are done in the context
of a task selected as OOM victim (i.e. TIF_MEMDIE). And yeah I've seen a case
when they failed in a code that "handled" the allocation failure with a
BUG_ON(!page).
http://lkml.kernel.org/r/201508272249.HDH81838.FtQOLMFFOVSJOH@xxxxxxxxxxxxxxxxxxx
Where was the BUG_ON(!page) ? Maybe it is a candidate for adding __GFP_NOFAIL.