On 2022/7/12 15:27, Zhou Chuyi wrote: > From: zhouchuyi <zhouchuyi@xxxxxxxxxxxxx> > > When we successfully find a pageblock in > fast_find_migrateblock(), the block will be set > skip-flag through set_pageblock_skip(). > However, when entering isolate_migratepages_block(), > the whole pageblock will be skipped due to the branch > 'if (!valid_page && IS_ALIGNED(low_pfn, pageblock_nr_pages))'. > Eventually we will goto isolate_abort and isolate nothing. > That cause fast_find_migrateblock useless. > > In this Patch, when we find a suitable pageblock in > fast_find_migrateblock, we do noting but let > isolate_migratepages_block to set skip flag to > the pageblock after scan it. Normally, we would > isolate some pages from the fast-find block. > > I use mmtest/thpscale-madvhugepage test it. Here > is the result: > baseline patch > Amean fault-both-1 1331.66 ( 0.00%) 1261.04 * 5.30%* > Amean fault-both-3 1383.95 ( 0.00%) 1191.69 * 13.89%* > Amean fault-both-5 1568.13 ( 0.00%) 1445.20 * 7.84%* > Amean fault-both-7 1819.62 ( 0.00%) 1555.13 * 14.54%* > Amean fault-both-12 1106.96 ( 0.00%) 1149.43 * -3.84%* > Amean fault-both-18 2196.93 ( 0.00%) 1875.77 * 14.62%* > Amean fault-both-24 2642.69 ( 0.00%) 2671.21 * -1.08%* > Amean fault-both-30 2901.89 ( 0.00%) 2857.32 * 1.54%* > Amean fault-both-32 3747.00 ( 0.00%) 3479.23 * 7.15%* > > Fixs: 'commit 70b44595eafe9 ("mm, compaction: use free lists > to quickly locate a migration source")' Thanks for your patch. Yet something to improve: ./scripts/checkpatch.pl v2-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch ERROR: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 70b44595eafe ("mm, compaction: use free lists to quickly locate a migration source")' #101: Fixs: 'commit 70b44595eafe9 ("mm, compaction: use free lists to quickly locate a migration source")' total: 1 errors, 0 warnings, 7 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. [PATCH v2] mm_compaction fix set skip in fast_find_migrateblock.eml has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. And remember runing get_maintainer.pl to get the right people before sending the patch: ./scripts/get_maintainer.pl v2-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> (maintainer:MEMORY MANAGEMENT) linux-mm@xxxxxxxxx (open list:MEMORY MANAGEMENT) linux-kernel@xxxxxxxxxxxxxxx (open list) BTW: It's not enforced but ~70 chars per line in commit log might be preferred. > > Signed-off-by: zhouchuyi <zhouchuyi@xxxxxxxxxxxxx> Thanks. > --- > mm/compaction.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 1f89b969c..a1a2b50c8 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -1852,7 +1852,6 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc) > pfn = cc->zone->zone_start_pfn; > cc->fast_search_fail = 0; > found_block = true; > - set_pageblock_skip(freepage); > break; > } > } >