On 03/10/2017 05:20 AM, Yisheng Xie wrote: > If the migrate target is a large free page and we ignore suitable, > it may not good for defrag. So move the ignore block suitable after > check large free page. Right. But in practice I expect close to no impact, because direct compaction shouldn't have to be called if there's a >=pageblock_order page already available. > Signed-off-by: Yisheng Xie <xieyisheng1@xxxxxxxxxx> > --- > mm/compaction.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 0fdfde0..4bf2a5d 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -991,9 +991,6 @@ static bool too_many_isolated(struct zone *zone) > static bool suitable_migration_target(struct compact_control *cc, > struct page *page) > { > - if (cc->ignore_block_suitable) > - return true; > - > /* If the page is a large free page, then disallow migration */ > if (PageBuddy(page)) { > /* > @@ -1005,6 +1002,9 @@ static bool suitable_migration_target(struct compact_control *cc, > return false; > } > > + if (cc->ignore_block_suitable) > + return true; > + > /* If the block is MIGRATE_MOVABLE or MIGRATE_CMA, allow migration */ > if (migrate_async_suitable(get_pageblock_migratetype(page))) > return true; > -- 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>