On Mon, Aug 26, 2024 at 10:47:13AM GMT, Michal Hocko wrote: > From: Michal Hocko <mho...@suse.com> > > There is no existing user of the flag and the flag is dangerous because > a nested allocation context can use GFP_NOFAIL which could cause > unexpected failure. Such a code would be hard to maintain because it > could be deeper in the call chain. > > PF_MEMALLOC_NORECLAIM has been added even when it was pointed out [1] > that such a allocation contex is inherently unsafe if the context > doesn't fully control all allocations called from this context.
I don't really buy the unsafety argument; if it applies to anything, it applies to GFP_NOFAIL - but we recently grew warnings about unsafe uses for it, so I don't see it as a great concern. GFP_NORECLAIM is frequently desirable as a hint about the latency requirements of a codepath; "don't try too hard, I've got fallbacks and I'm in a codepath where I don't want to block too long". I expect PF_MEMALLOC_NORECLAIM will find legitimate uses.