Re: [PATCH] mm,page_alloc: Update comment for last second allocation attempt.

From: Michal Hocko
Date: Fri Nov 03 2017 - 10:17:10 EST


On Fri 03-11-17 23:08:35, Tetsuo Handa wrote:
> Michal Hocko wrote:
> > On Fri 03-11-17 22:46:29, Tetsuo Handa wrote:
> > [...]
> > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > > index c274960..547e9cb 100644
> > > --- a/mm/page_alloc.c
> > > +++ b/mm/page_alloc.c
> > > @@ -3312,11 +3312,10 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...)
> > > }
> > >
> > > /*
> > > - * Go through the zonelist yet one more time, keep very high watermark
> > > - * here, this is only to catch a parallel oom killing, we must fail if
> > > - * we're still under heavy pressure. But make sure that this reclaim
> > > - * attempt shall not depend on __GFP_DIRECT_RECLAIM && !__GFP_NORETRY
> > > - * allocation which will never fail due to oom_lock already held.
> > > + * This allocation attempt must not depend on __GFP_DIRECT_RECLAIM &&
> > > + * !__GFP_NORETRY allocation which will never fail due to oom_lock
> > > + * already held. And since this allocation attempt does not sleep,
> > > + * there is no reason we must use high watermark here.
> > > */
> > > page = get_page_from_freelist((gfp_mask | __GFP_HARDWALL) &
> > > ~__GFP_DIRECT_RECLAIM, order,
> >
> > Which patch does this depend on?
>
> This patch is preparation for "mm,oom: Move last second allocation to inside
> the OOM killer." patch in order to use changelog close to what you suggested.
> That is, I will move this comment and get_page_from_freelist() together to
> alloc_pages_before_oomkill(), after we recorded why using ALLOC_WMARK_HIGH.

Is it really worth a separate patch, though? Aren't you overcomplicating
things again?
--
Michal Hocko
SUSE Labs