On Thu 15-08-24 14:32:10, Yafang Shao wrote: > On Thu, Aug 15, 2024 at 2:22 PM Michal Hocko <mhocko@xxxxxxxx> wrote: [...] > > Let me repeat, nested NOFAIL allocations will BUG_ON on failure. > > The key question is whether it actually fails after we've already > woken up kswapd. Have we encountered real issues, or is this just > based on code review? Depleting memory to the level that even min memory reserves is insufficient is not a theoretical concern. OOMing the system is a real thing! > Instead of allowing it to fail, why not allocate > from the reserve memory to prevent this from happening? Because those memory reserves are shared and potentially required by other more important users which cannot make forward progress without them. And even with that, those can get depleted so the failure point is just a matter of a specific memory consumption pattern. The failure could be more rare but that also means much harder to predict and test for. Really there are no ways around non sleeping GFP_NOFAIL, either you disalow them or you just create a busy loop inside the allocator. We have chosen the first option because that is a saner model to support. -- Michal Hocko SUSE Labs