Re: [PATCH] mm/compaction: Remove some useless code in compact_zone()

From: Vlastimil Babka
Date: Fri Oct 16 2020 - 11:05:55 EST


On 10/14/20 2:28 PM, David Hildenbrand wrote:
On 14.10.20 09:23, yanfei.xu@xxxxxxxxxxxxx wrote:
From: Yanfei Xu <yanfei.xu@xxxxxxxxxxxxx>

start_pfn has been declared at the begin of compact_zone(), it's
no need to declare it again. And remove an useless semicolon.

Signed-off-by: Yanfei Xu <yanfei.xu@xxxxxxxxxxxxx>
---
mm/compaction.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index 176dcded298e..5e69c1f94d96 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -2272,7 +2272,7 @@ compact_zone(struct compact_control *cc, struct capture_control *capc)
while ((ret = compact_finished(cc)) == COMPACT_CONTINUE) {
int err;
- unsigned long start_pfn = cc->migrate_pfn;
+ start_pfn = cc->migrate_pfn;

There is a user in

trace_mm_compaction_end(start_pfn, cc->migrate_pfn, cc->free_pfn,
end_pfn, sync, ret);

we would now trace a different value, no?

Agreed. We should rather rename the while-local one to avoid confusion. Something like "iteration_start_pfn" ?

/*
* Avoid multiple rescans which can happen if a page cannot be
@@ -2309,7 +2309,6 @@ compact_zone(struct compact_control *cc, struct capture_control *capc)
case ISOLATE_SUCCESS:
update_cached = false;
last_migrated_pfn = start_pfn;
- ;

Huh, how does something like that happen :)

Looks like "case ISOLATE_SUCCESS:" used to be an empty implementation, then statements got added, but semicolon not removed.