[PATCH] mm/migrate: skip unsupported ZONE_DEVICE page in migrate_vma_collect_pmd()

From: Miaohe Lin
Date: Tue May 31 2022 - 08:25:30 EST


For now we only support migrating to un-addressable device memory. Other
types of ZONE_DEVICE pages are not supported yet. So skip those pages in
MIGRATE_VMA_SELECT_SYSTEM case to save useless effort.

Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>
---
mm/migrate_device.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/mm/migrate_device.c b/mm/migrate_device.c
index 5052093d0262..a0452c1d69dd 100644
--- a/mm/migrate_device.c
+++ b/mm/migrate_device.c
@@ -157,6 +157,11 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
goto next;
}
page = vm_normal_page(migrate->vma, addr, pte);
+ /*
+ * Other types of ZONE_DEVICE page are not supported.
+ */
+ if (page && is_zone_device_page(page))
+ goto next;
mpfn = migrate_pfn(pfn) | MIGRATE_PFN_MIGRATE;
mpfn |= pte_write(pte) ? MIGRATE_PFN_WRITE : 0;
}
--
2.23.0