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

Miaohe Lin posted 1 patch 3 years, 11 months ago
mm/migrate_device.c | 5 +++++
1 file changed, 5 insertions(+)
[PATCH] mm/migrate: skip unsupported ZONE_DEVICE page in migrate_vma_collect_pmd()
Posted by Miaohe Lin 3 years, 11 months ago
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@huawei.com>
---
 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
Re: [PATCH] mm/migrate: skip unsupported ZONE_DEVICE page in migrate_vma_collect_pmd()
Posted by Andrew Morton 3 years, 11 months ago
On Tue, 31 May 2022 20:25:30 +0800 Miaohe Lin <linmiaohe@huawei.com> wrote:

> 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.
> 

https://lkml.kernel.org/r/20220531155629.20057-4-alex.sierra@amd.com
just made similar-but-different changes here.  Please review those.

Normally I'm merge your fixlet ahead of the larger changes and redo
Alex's patchset.  Because Alex's larger patchset might never get
mainlined, so your fixlet would then get lost.

But in this case, your fixlet doesn't seem important enough to be
churning things around in that way?

> --- 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;
>  		}
Re: [PATCH] mm/migrate: skip unsupported ZONE_DEVICE page in migrate_vma_collect_pmd()
Posted by Miaohe Lin 3 years, 11 months ago
On 2022/6/1 2:05, Andrew Morton wrote:
> On Tue, 31 May 2022 20:25:30 +0800 Miaohe Lin <linmiaohe@huawei.com> wrote:
> 
>> 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.
>>
> 
> https://lkml.kernel.org/r/20220531155629.20057-4-alex.sierra@amd.com
> just made similar-but-different changes here.  Please review those.
> 
> Normally I'm merge your fixlet ahead of the larger changes and redo
> Alex's patchset.  Because Alex's larger patchset might never get
> mainlined, so your fixlet would then get lost.
> 
> But in this case, your fixlet doesn't seem important enough to be
> churning things around in that way?

Yes. Above similar-but-different changes look good to me. I'm fine to drop
this patch.

Thanks!

> 
>> --- 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;
>>  		}
> 
> .
>