On Thu, Feb 10, 2022 at 12:03 PM Roman Gushchin <guro@xxxxxx> wrote: > > On Thu, Feb 10, 2022 at 12:14:35AM -0800, Shakeel Butt wrote: > > Currently the kernel force charges the allocations which have __GFP_HIGH > > flag without triggering the memory reclaim. __GFP_HIGH indicates that > > the caller is high priority and since commit 869712fd3de5 ("mm: > > memcontrol: fix network errors from failing __GFP_ATOMIC charges") the > > kernel let such allocations do force charging. Please note that > > __GFP_ATOMIC has been replaced by __GFP_HIGH. > > > > __GFP_HIGH does not tell if the caller can block or can trigger reclaim. > > There are separate checks to determine that. So, there is no need to > > skip reclaim for __GFP_HIGH allocations. So, handle __GFP_HIGH together > > with __GFP_NOFAIL which also does force charging. > > This sounds very reasonable. But shouldn't we check if __GFP_DIRECT_RECLAIM > is set and bail out otherwise? > We already have a gfpflags_allow_blocking() check which checks for __GFP_DIRECT_RECLAIM.