Re: [PATCH v2 20/46] mm/migrate: Add folio_migrate_copy()

From: Christoph Hellwig
Date: Wed Jun 23 2021 - 04:37:54 EST


> +void folio_migrate_copy(struct folio *newfolio, struct folio *folio)
> {
> + unsigned int i = folio_nr_pages(folio) - 1;
>
> + copy_highpage(folio_page(newfolio, i), folio_page(folio, i));
> + while (i-- > 0) {
> + cond_resched()a
> + /* folio_page() handles discontinuities in memmap */
> + copy_highpage(folio_page(newfolio, i), folio_page(folio, i));
> + }
> +

What is the advantage of copying backwards here to start with?