diff options
| author | Matthew Brost <matthew.brost@intel.com> | 2025-03-05 17:26:27 -0800 |
|---|---|---|
| committer | Matthew Brost <matthew.brost@intel.com> | 2025-03-06 11:35:23 -0800 |
| commit | a14fa8ec9d811c1cef902345b58294b589655b41 (patch) | |
| tree | 6dd2ee0b6547f97a7d453cd1a2e6407f87c9d9ad /include | |
| parent | drm/xe: Retry BO allocation (diff) | |
| download | linux-a14fa8ec9d811c1cef902345b58294b589655b41.tar.gz linux-a14fa8ec9d811c1cef902345b58294b589655b41.zip | |
mm/migrate: Add migrate_device_pfns
Add migrate_device_pfns which prepares an array of pre-populated device
pages for migration. This is needed for eviction of known set of
non-contiguous devices pages to cpu pages which is a common case for SVM
in DRM drivers using TTM.
v2:
- s/migrate_device_vma_range/migrate_device_prepopulated_range
- Drop extra mmu invalidation (Vetter)
v3:
- s/migrate_device_prepopulated_range/migrate_device_pfns (Alistar)
- Use helper to lock device pages (Alistar)
- Update commit message with why this is required (Alistar)
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250306012657.3505757-3-matthew.brost@intel.com
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/migrate.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/migrate.h b/include/linux/migrate.h index 29919faea2f1..80891120cca9 100644 --- a/include/linux/migrate.h +++ b/include/linux/migrate.h @@ -227,6 +227,7 @@ void migrate_vma_pages(struct migrate_vma *migrate); void migrate_vma_finalize(struct migrate_vma *migrate); int migrate_device_range(unsigned long *src_pfns, unsigned long start, unsigned long npages); +int migrate_device_pfns(unsigned long *src_pfns, unsigned long npages); void migrate_device_pages(unsigned long *src_pfns, unsigned long *dst_pfns, unsigned long npages); void migrate_device_finalize(unsigned long *src_pfns, |
