Re: [PATCH 3/4] mm, compaction: Finish scanning the current pageblock if requested

From: Vlastimil Babka
Date: Tue Feb 07 2023 - 12:10:19 EST


On 1/25/23 14:44, Mel Gorman wrote:
> cc->finish_pageblock is set when the current pageblock should be
> rescanned but fast_find_migrateblock can select an alternative
> block. Disable fast_find_migrateblock when the current pageblock
> scan should be completed.
>
> Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>

> ---
> mm/compaction.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 28711a21a8a2..4b3a0238879c 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -1762,6 +1762,13 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc)
> if (cc->ignore_skip_hint)
> return pfn;
>
> + /*
> + * If the pageblock should be finished then do not select a different
> + * pageblock.
> + */
> + if (cc->finish_pageblock)
> + return pfn;
> +
> /*
> * If the migrate_pfn is not at the start of a zone or the start
> * of a pageblock then assume this is a continuation of a previous