Re: [PATCH v6 0/4] Enable >0 order folio memory compaction

From: Andrew Morton
Date: Mon Feb 19 2024 - 21:06:25 EST


On Fri, 16 Feb 2024 12:04:28 -0500 Zi Yan <zi.yan@xxxxxxxx> wrote:

> Baolin's patch

Baolin writes many patches and patches have names, please use them!

> on nr_migratepages was based on this one, a better fixup
> for it might be below. Since before my patchset, compaction only deals with
> order-0 pages.

I don't understand what this means. The patchset you sent applies OK
to mm-unstable so what else is there to do?

> diff --git a/mm/compaction.c b/mm/compaction.c
> index 01ec85cfd623f..e60135e2019d6 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -1798,7 +1798,7 @@ static struct folio *compaction_alloc(struct folio *src, unsigned long data)
> dst = list_entry(cc->freepages.next, struct folio, lru);
> list_del(&dst->lru);
> cc->nr_freepages--;
> - cc->nr_migratepages -= 1 << order;
> + cc->nr_migratepages--;
>
> return dst;
> }
> @@ -1814,7 +1814,7 @@ static void compaction_free(struct folio *dst, unsigned long data)
>
> list_add(&dst->lru, &cc->freepages);
> cc->nr_freepages++;
> - cc->nr_migratepages += 1 << order;
> + cc->nr_migratepages++;
> }