On Thu, Feb 10, 2022 at 02:25:01PM -0800, Shakeel Butt wrote: > 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. Indeed. Please, feel free to add Reviewed-by: Roman Gushchin <guro@xxxxxx> to the patch. Thank you!