Re: [PATCH 12/27] mm: refactor the ZONE_DEVICE handling in migrate_vma_pages

From: Alistair Popple
Date: Thu Feb 10 2022 - 05:46:24 EST


Reviewed-by: Alistair Popple <apopple@xxxxxxxxxx>

On Thursday, 10 February 2022 6:28:13 PM AEDT Christoph Hellwig wrote:
> Make the flow a little more clear and prepare for adding a new
> ZONE_DEVICE memory type.
>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> ---
> mm/migrate.c | 27 ++++++++++++---------------
> 1 file changed, 12 insertions(+), 15 deletions(-)
>
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 30ecd7223656c1..746e1230886ddb 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -2788,24 +2788,21 @@ void migrate_vma_pages(struct migrate_vma *migrate)
>
> mapping = page_mapping(page);
>
> - if (is_zone_device_page(newpage)) {
> - if (is_device_private_page(newpage)) {
> - /*
> - * For now only support private anonymous when
> - * migrating to un-addressable device memory.
> - */
> - if (mapping) {
> - migrate->src[i] &= ~MIGRATE_PFN_MIGRATE;
> - continue;
> - }
> - } else {
> - /*
> - * Other types of ZONE_DEVICE page are not
> - * supported.
> - */
> + if (is_device_private_page(newpage)) {
> + /*
> + * For now only support private anonymous when migrating
> + * to un-addressable device memory.
> + */
> + if (mapping) {
> migrate->src[i] &= ~MIGRATE_PFN_MIGRATE;
> continue;
> }
> + } else if (is_zone_device_page(newpage)) {
> + /*
> + * Other types of ZONE_DEVICE page are not supported.
> + */
> + migrate->src[i] &= ~MIGRATE_PFN_MIGRATE;
> + continue;
> }
>
> r = migrate_page(mapping, newpage, page, MIGRATE_SYNC_NO_COPY);
>