On Sat, Jan 31, 2015 at 08:38:10PM +0800, Zhang Yanfei wrote:
> At 2015/1/30 20:34, Joonsoo Kim wrote:
> > From: Joonsoo <[email protected]>
> >
> > This is preparation step to use page allocator's anti fragmentation logic
> > in compaction. This patch just separates steal decision part from actual
> > steal behaviour part so there is no functional change.
> >
> > Signed-off-by: Joonsoo Kim <[email protected]>
> > ---
> > mm/page_alloc.c | 49 ++++++++++++++++++++++++++++++++-----------------
> > 1 file changed, 32 insertions(+), 17 deletions(-)
> >
> > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > index 8d52ab1..ef74750 100644
> > --- a/mm/page_alloc.c
> > +++ b/mm/page_alloc.c
> > @@ -1122,6 +1122,24 @@ static void change_pageblock_range(struct page *pageblock_page,
> > }
> > }
> >
> > +static bool can_steal_freepages(unsigned int order,
> > + int start_mt, int fallback_mt)
> > +{
> > + if (is_migrate_cma(fallback_mt))
> > + return false;
> > +
> > + if (order >= pageblock_order)
> > + return true;
> > +
> > + if (order >= pageblock_order / 2 ||
> > + start_mt == MIGRATE_RECLAIMABLE ||
> > + start_mt == MIGRATE_UNMOVABLE ||
> > + page_group_by_mobility_disabled)
> > + return true;
> > +
> > + return false;
> > +}
>
> So some comments which can tell the cases can or cannot steal freepages
> from other migratetype is necessary IMHO. Actually we can just
> move some comments in try_to_steal_pages to here.
Yes, move some comments looks sufficient to me. I will fix it.
Thanks.