Lines Matching defs:migrate
9 #include <linux/migrate.h>
24 struct migrate_vma *migrate = walk->private;
28 migrate->dst[migrate->npages] = 0;
29 migrate->src[migrate->npages++] = 0;
40 struct migrate_vma *migrate = walk->private;
48 migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE;
49 migrate->dst[migrate->npages] = 0;
50 migrate->npages++;
51 migrate->cpages++;
62 struct migrate_vma *migrate = walk->private;
119 migrate->cpages++;
135 if (!(migrate->flags &
137 page->pgmap->owner != migrate->pgmap_owner)
147 (migrate->flags & MIGRATE_VMA_SELECT_SYSTEM)) {
149 migrate->cpages++;
152 page = vm_normal_page(migrate->vma, addr, pte);
154 !(migrate->flags & MIGRATE_VMA_SELECT_SYSTEM))
157 (!(migrate->flags & MIGRATE_VMA_SELECT_DEVICE_COHERENT) ||
158 page->pgmap->owner != migrate->pgmap_owner))
213 migrate->cpages++;
265 migrate->dst[migrate->npages] = 0;
266 migrate->src[migrate->npages++] = mpfn;
287 * @migrate: migrate struct containing all migration information
293 static void migrate_vma_collect(struct migrate_vma *migrate)
303 migrate->vma->vm_mm, migrate->start, migrate->end,
304 migrate->pgmap_owner);
307 walk_page_range(migrate->vma->vm_mm, migrate->start, migrate->end,
308 &migrate_vma_walk_ops, migrate);
311 migrate->end = migrate->start + (migrate->npages << PAGE_SHIFT);
435 * @migrate: migrate struct containing all migration information
439 * restored because we cannot migrate them.
444 static void migrate_vma_unmap(struct migrate_vma *migrate)
446 migrate->cpages = migrate_device_unmap(migrate->src, migrate->npages,
447 migrate->fault_page);
451 * migrate_vma_setup() - prepare to migrate a range of memory
457 * Prepare to migrate a range of memory virtual address range by collecting all
472 * Note that the caller does not have to migrate all the pages that are marked
474 * device memory to system memory. If the caller cannot migrate a device page
491 * then migrate_vma_pages() to migrate struct page information from the source
492 * struct page to the destination struct page. If it fails to migrate the
562 static void migrate_vma_insert_page(struct migrate_vma *migrate,
567 struct vm_area_struct *vma = migrate->vma;
683 struct migrate_vma *migrate)
711 VM_BUG_ON(!migrate);
712 addr = migrate->start + i*PAGE_SIZE;
718 migrate->vma->vm_mm, addr, migrate->end,
719 migrate->pgmap_owner);
722 migrate_vma_insert_page(migrate, addr, newpage,
756 if (migrate && migrate->fault_page == page)
772 * migrate_device_pages() - migrate meta-data from src page to dst page
774 * @dst_pfns: array of pfns allocated by the driver to migrate memory to
777 * Equivalent to migrate_vma_pages(). This is called to migrate struct page
788 * migrate_vma_pages() - migrate meta-data from src page to dst page
789 * @migrate: migrate struct containing all migration information
795 void migrate_vma_pages(struct migrate_vma *migrate)
797 __migrate_device_pages(migrate->src, migrate->dst, migrate->npages, migrate);
804 * @dst_pfns: array of pfns allocated by the driver to migrate memory to
860 * @migrate: migrate struct containing all migration information
869 void migrate_vma_finalize(struct migrate_vma *migrate)
871 migrate_device_finalize(migrate->src, migrate->dst, migrate->npages);
876 * migrate_device_range() - migrate device private pfns to normal memory.
878 * @start: starting pfn in the range to migrate.
879 * @npages: number of pages to migrate.