lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <3576e3520c044beb2a81860aecb2d4f597089300.1682521303.git.baolin.wang@linux.alibaba.com>
Date:   Wed, 26 Apr 2023 23:03:13 +0800
From:   Baolin Wang <baolin.wang@...ux.alibaba.com>
To:     akpm@...ux-foundation.org
Cc:     mgorman@...hsingularity.net, vbabka@...e.cz,
        baolin.wang@...ux.alibaba.com, linux-mm@...ck.org,
        linux-kernel@...r.kernel.org
Subject: [PATCH] Revert "Revert "mm/compaction: fix set skip in fast_find_migrateblock""

This reverts commit 95e7a450b8190673675836bfef236262ceff084a.

When I tested thpscale with v6.3 kernel, I found the compaction efficiency
had a great regression compared to v6.2-rc1 kernel. See below numbers:
                                    v6.2-rc             v6.3
Percentage huge-3        81.35 (   0.00%)       32.97 ( -59.47%)
Percentage huge-5        89.92 (   0.00%)       41.70 ( -53.63%)
Percentage huge-7        92.41 (   0.00%)       34.08 ( -63.12%)
Percentage huge-12       90.29 (   0.00%)       41.10 ( -54.49%)
Percentage huge-18       82.38 (   0.00%)       41.24 ( -49.95%)
Percentage huge-24       80.34 (   0.00%)       35.99 ( -55.20%)
Percentage huge-30       88.90 (   0.00%)       44.20 ( -50.28%)
Percentage huge-32       90.69 (   0.00%)       79.57 ( -12.25%)

Ops Compaction stalls                 113790.00      207099.00
Ops Compaction success                 33983.00      19488.00
Ops Compaction failures                79807.00      187611.00
Ops Compaction efficiency                 29.86          9.41

After some investigation, I found the commit 95e7a450b819
("Revert mm/compaction: fix set skip in fast_find_migrateblock") caused
the regression. This commit revert the commit 7efc3b726103 ("mm/compaction:
fix set skip in fast_find_migrateblock") to fix a CPU stalling issue, which
is caused by compaction stucked in repeating fast_find_migrateblock().

And now the compaction stalling issue is addressed by commit cfccd2e63e7e
("mm, compaction: finish pageblocks on complete migration failure"). So
we should revert the temporary fix by commit 95e7a450b819, since the
fast pfn found by fast_find_migrateblock() really can help to isolate
some migratable pages.

After reverting the commit, the regression has gone.
                               v6.2-rc1                  v6.3           v6.3_patched
Percentage huge-3        81.35 (   0.00%)       32.97 ( -59.47%)       87.78 (   7.90%)
Percentage huge-5        89.92 (   0.00%)       41.70 ( -53.63%)       89.68 (  -0.27%)
Percentage huge-7        92.41 (   0.00%)       34.08 ( -63.12%)       85.89 (  -7.05%)
Percentage huge-12       90.29 (   0.00%)       41.10 ( -54.49%)       94.10 (   4.22%)
Percentage huge-18       82.38 (   0.00%)       41.24 ( -49.95%)       85.06 (   3.25%)
Percentage huge-24       80.34 (   0.00%)       35.99 ( -55.20%)       84.38 (   5.02%)
Percentage huge-30       88.90 (   0.00%)       44.20 ( -50.28%)       95.54 (   7.48%)
Percentage huge-32       90.69 (   0.00%)       79.57 ( -12.25%)       92.30 (   1.78%)

Signed-off-by: Baolin Wang <baolin.wang@...ux.alibaba.com>
---
 mm/compaction.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index 33650541bebc..567c8d41d01e 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1860,7 +1860,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;
 			}
 		}
-- 
2.27.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ