On Wed 03-03-21 21:46:44, Feng Tang wrote: > On Wed, Mar 03, 2021 at 09:18:32PM +0800, Tang, Feng wrote: > > On Wed, Mar 03, 2021 at 01:32:11PM +0100, Michal Hocko wrote: > > > On Wed 03-03-21 20:18:33, Feng Tang wrote: [...] > > > > One thing I tried which can fix the slowness is: > > > > > > > > + gfp_mask &= ~(__GFP_DIRECT_RECLAIM | __GFP_KSWAPD_RECLAIM); > > > > > > > > which explicitly clears the 2 kinds of reclaim. And I thought it's too > > > > hacky and didn't mention it in the commit log. > > > > > > Clearing __GFP_DIRECT_RECLAIM would be the right way to achieve > > > GFP_NOWAIT semantic. Why would you want to exclude kswapd as well? > > > > When I tried gfp_mask &= ~__GFP_DIRECT_RECLAIM, the slowness couldn't > > be fixed. > > I just double checked by rerun the test, 'gfp_mask &= ~__GFP_DIRECT_RECLAIM' > can also accelerate the allocation much! though is still a little slower than > this patch. Seems I've messed some of the tries, and sorry for the confusion! > > Could this be used as the solution? or the adding another fallback_nodemask way? > but the latter will change the current API quite a bit. I haven't got to the whole series yet. The real question is whether the first attempt to enforce the preferred mask is a general win. I would argue that it resembles the existing single node preferred memory policy because that one doesn't push heavily on the preferred node either. So dropping just the direct reclaim mode makes some sense to me. IIRC this is something I was recommending in an early proposal of the feature. -- Michal Hocko SUSE Labs