Re: [PATCH 2/2] mm: compaction: allow isolation of lower order buddy pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 05 April 2012 23:46:17 David Rientjes wrote:
> On Thu, 5 Apr 2012, Bartlomiej Zolnierkiewicz wrote:
> 
> > diff --git a/mm/compaction.c b/mm/compaction.c
> > index bc77135..642c17a 100644
> > --- a/mm/compaction.c
> > +++ b/mm/compaction.c
> > @@ -115,8 +115,8 @@ static bool suitable_migration_target(struct page *page)
> >  	if (migratetype == MIGRATE_ISOLATE || migratetype == MIGRATE_RESERVE)
> >  		return false;
> >  
> > -	/* If the page is a large free page, then allow migration */
> > -	if (PageBuddy(page) && page_order(page) >= pageblock_order)
> > +	/* If the page is a free page, then allow migration */
> > +	if (PageBuddy(page))
> >  		return true;
> >  
> >  	/* If the block is MIGRATE_MOVABLE, allow migration */
> 
> So when we try to allocate a 2M hugepage through the buddy allocator where 
> the pageblock is also 2M, wouldn't this result in a lot of unnecessary 
> migration of memory that may not end up defragmented enough for the 
> allocation to succeed?  Sounds like a regression for hugepage allocation.

I haven't tested it with hugepage allocation yet (no hugepage support
on ARM) but the code isolating pages for migration remains unchanged
so after migration memory we are trying to allocate pages from should
end up at least as defragmented as before the patch.  Some migrations
may turn out to be unnecessary but it doesn't seem as it introduces
additional problems with hugepage allocation.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung Poland R&D Center

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]