diff mbox series

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

Message ID 20220531122530.17996-1-linmiaohe@huawei.com (mailing list archive)
State New
Headers show
Series mm/migrate: skip unsupported ZONE_DEVICE page in migrate_vma_collect_pmd() | expand

Commit Message

Miaohe Lin May 31, 2022, 12:25 p.m. UTC
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(+)

Comments

Andrew Morton May 31, 2022, 6:05 p.m. UTC | #1
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;
>  		}
Miaohe Lin June 1, 2022, 1:54 a.m. UTC | #2
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;
>>  		}
> 
> .
>
diff mbox series

Patch

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