To keep the same logic as test_and_set_skip(), only set the skip flag
if cc->no_set_skip_hint is false, which makes code more reasonable.
Signed-off-by: Baolin Wang <[email protected]>
---
mm/compaction.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/compaction.c b/mm/compaction.c
index 1e5183f39ca9..65d8d9223acc 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1223,7 +1223,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
* rescanned twice in a row.
*/
if (low_pfn == end_pfn && (!nr_isolated || cc->finish_pageblock)) {
- if (valid_page && !skip_updated)
+ if (!cc->no_set_skip_hint && valid_page && !skip_updated)
set_pageblock_skip(valid_page);
update_cached_migrate(cc, low_pfn);
}
--
2.27.0
On 5/25/23 14:53, Baolin Wang wrote:
> To keep the same logic as test_and_set_skip(), only set the skip flag
> if cc->no_set_skip_hint is false, which makes code more reasonable.
>
> Signed-off-by: Baolin Wang <[email protected]>
Acked-by: Vlastimil Babka <[email protected]>
> ---
> mm/compaction.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 1e5183f39ca9..65d8d9223acc 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -1223,7 +1223,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
> * rescanned twice in a row.
> */
> if (low_pfn == end_pfn && (!nr_isolated || cc->finish_pageblock)) {
> - if (valid_page && !skip_updated)
> + if (!cc->no_set_skip_hint && valid_page && !skip_updated)
> set_pageblock_skip(valid_page);
> update_cached_migrate(cc, low_pfn);
> }