Hi Vlastimil, Thanks for comment. On 2017/3/10 15:30, Vlastimil Babka wrote: > 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. > Maybe you are right and this change is just based on logical analyses. Presently, only in direct compaction, we increase the compaction priority, and ignore suitable at MIN_COMPACT_PRIORITY. I have a silly question, can we do the similar thing in kcompactd? maybe by doing most work in kcompactd, we can get better perf of slow path. Thanks Yisheng Xie >> 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>