Lines Matching refs: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;
120 migrate->cpages++;
136 if (!(migrate->flags &
138 page->pgmap->owner != migrate->pgmap_owner)
148 (migrate->flags & MIGRATE_VMA_SELECT_SYSTEM)) {
150 migrate->cpages++;
153 page = vm_normal_page(migrate->vma, addr, pte);
155 !(migrate->flags & MIGRATE_VMA_SELECT_SYSTEM))
158 (!(migrate->flags & MIGRATE_VMA_SELECT_DEVICE_COHERENT) ||
159 page->pgmap->owner != migrate->pgmap_owner))
216 migrate->cpages++;
268 migrate->dst[migrate->npages] = 0;
269 migrate->src[migrate->npages++] = mpfn;
290 * @migrate: migrate struct containing all migration information
296 static void migrate_vma_collect(struct migrate_vma *migrate)
306 migrate->vma->vm_mm, migrate->start, migrate->end,
307 migrate->pgmap_owner);
310 walk_page_range(migrate->vma->vm_mm, migrate->start, migrate->end,
311 &migrate_vma_walk_ops, migrate);
314 migrate->end = migrate->start + (migrate->npages << PAGE_SHIFT);
438 * @migrate: migrate struct containing all migration information
442 * restored because we cannot migrate them.
447 static void migrate_vma_unmap(struct migrate_vma *migrate)
449 migrate->cpages = migrate_device_unmap(migrate->src, migrate->npages,
450 migrate->fault_page);
454 * migrate_vma_setup() - prepare to migrate a range of memory
460 * Prepare to migrate a range of memory virtual address range by collecting all
475 * Note that the caller does not have to migrate all the pages that are marked
477 * device memory to system memory. If the caller cannot migrate a device page
494 * then migrate_vma_pages() to migrate struct page information from the source
495 * struct page to the destination struct page. If it fails to migrate the
565 static void migrate_vma_insert_page(struct migrate_vma *migrate,
571 struct vm_area_struct *vma = migrate->vma;
687 struct migrate_vma *migrate)
715 VM_BUG_ON(!migrate);
716 addr = migrate->start + i*PAGE_SIZE;
722 migrate->vma->vm_mm, addr, migrate->end,
723 migrate->pgmap_owner);
726 migrate_vma_insert_page(migrate, addr, newpage,
760 if (migrate && migrate->fault_page == page)
776 * migrate_device_pages() - migrate meta-data from src page to dst page
778 * @dst_pfns: array of pfns allocated by the driver to migrate memory to
781 * Equivalent to migrate_vma_pages(). This is called to migrate struct page
792 * migrate_vma_pages() - migrate meta-data from src page to dst page
793 * @migrate: migrate struct containing all migration information
799 void migrate_vma_pages(struct migrate_vma *migrate)
801 __migrate_device_pages(migrate->src, migrate->dst, migrate->npages, migrate);
808 * @dst_pfns: array of pfns allocated by the driver to migrate memory to
864 * @migrate: migrate struct containing all migration information
873 void migrate_vma_finalize(struct migrate_vma *migrate)
875 migrate_device_finalize(migrate->src, migrate->dst, migrate->npages);
880 * migrate_device_range() - migrate device private pfns to normal memory.
882 * @start: starting pfn in the range to migrate.
883 * @npages: number of pages to migrate.