Lines Matching refs:migrate

2215 	struct migrate_vma *migrate = walk->private;  in migrate_vma_collect_skip()  local
2219 migrate->dst[migrate->npages] = 0; in migrate_vma_collect_skip()
2220 migrate->src[migrate->npages++] = 0; in migrate_vma_collect_skip()
2231 struct migrate_vma *migrate = walk->private; in migrate_vma_collect_hole() local
2239 migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE; in migrate_vma_collect_hole()
2240 migrate->dst[migrate->npages] = 0; in migrate_vma_collect_hole()
2241 migrate->npages++; in migrate_vma_collect_hole()
2242 migrate->cpages++; in migrate_vma_collect_hole()
2253 struct migrate_vma *migrate = walk->private; in migrate_vma_collect_pmd() local
2317 migrate->cpages++; in migrate_vma_collect_pmd()
2333 if (!(migrate->flags & in migrate_vma_collect_pmd()
2335 page->pgmap->owner != migrate->pgmap_owner) in migrate_vma_collect_pmd()
2343 if (!(migrate->flags & MIGRATE_VMA_SELECT_SYSTEM)) in migrate_vma_collect_pmd()
2348 migrate->cpages++; in migrate_vma_collect_pmd()
2351 page = vm_normal_page(migrate->vma, addr, pte); in migrate_vma_collect_pmd()
2372 migrate->cpages++; in migrate_vma_collect_pmd()
2419 migrate->dst[migrate->npages] = 0; in migrate_vma_collect_pmd()
2420 migrate->src[migrate->npages++] = mpfn; in migrate_vma_collect_pmd()
2445 static void migrate_vma_collect(struct migrate_vma *migrate) in migrate_vma_collect() argument
2455 migrate->vma, migrate->vma->vm_mm, migrate->start, migrate->end, in migrate_vma_collect()
2456 migrate->pgmap_owner); in migrate_vma_collect()
2459 walk_page_range(migrate->vma->vm_mm, migrate->start, migrate->end, in migrate_vma_collect()
2460 &migrate_vma_walk_ops, migrate); in migrate_vma_collect()
2463 migrate->end = migrate->start + (migrate->npages << PAGE_SHIFT); in migrate_vma_collect()
2528 static void migrate_vma_prepare(struct migrate_vma *migrate) in migrate_vma_prepare() argument
2530 const unsigned long npages = migrate->npages; in migrate_vma_prepare()
2531 const unsigned long start = migrate->start; in migrate_vma_prepare()
2537 for (i = 0; (i < npages) && migrate->cpages; i++) { in migrate_vma_prepare()
2538 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_prepare()
2544 if (!(migrate->src[i] & MIGRATE_PFN_LOCKED)) { in migrate_vma_prepare()
2554 migrate->src[i] = 0; in migrate_vma_prepare()
2555 migrate->cpages--; in migrate_vma_prepare()
2560 migrate->src[i] |= MIGRATE_PFN_LOCKED; in migrate_vma_prepare()
2573 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_prepare()
2574 migrate->cpages--; in migrate_vma_prepare()
2577 migrate->src[i] = 0; in migrate_vma_prepare()
2579 migrate->cpages--; in migrate_vma_prepare()
2591 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_prepare()
2592 migrate->cpages--; in migrate_vma_prepare()
2600 migrate->src[i] = 0; in migrate_vma_prepare()
2602 migrate->cpages--; in migrate_vma_prepare()
2613 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_prepare()
2615 if (!page || (migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_prepare()
2618 remove_migration_pte(page, migrate->vma, addr, page); in migrate_vma_prepare()
2620 migrate->src[i] = 0; in migrate_vma_prepare()
2638 static void migrate_vma_unmap(struct migrate_vma *migrate) in migrate_vma_unmap() argument
2640 const unsigned long npages = migrate->npages; in migrate_vma_unmap()
2641 const unsigned long start = migrate->start; in migrate_vma_unmap()
2645 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_unmap()
2647 if (!page || !(migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_unmap()
2660 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_unmap()
2661 migrate->cpages--; in migrate_vma_unmap()
2666 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_unmap()
2668 if (!page || (migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_unmap()
2673 migrate->src[i] = 0; in migrate_vma_unmap()
2796 static void migrate_vma_insert_page(struct migrate_vma *migrate, in migrate_vma_insert_page() argument
2801 struct vm_area_struct *vma = migrate->vma; in migrate_vma_insert_page()
2940 void migrate_vma_pages(struct migrate_vma *migrate) in migrate_vma_pages() argument
2942 const unsigned long npages = migrate->npages; in migrate_vma_pages()
2943 const unsigned long start = migrate->start; in migrate_vma_pages()
2949 struct page *newpage = migrate_pfn_to_page(migrate->dst[i]); in migrate_vma_pages()
2950 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_pages()
2955 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
2960 if (!(migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_pages()
2966 MMU_NOTIFY_MIGRATE, 0, migrate->vma, in migrate_vma_pages()
2967 migrate->vma->vm_mm, addr, migrate->end, in migrate_vma_pages()
2968 migrate->pgmap_owner); in migrate_vma_pages()
2971 migrate_vma_insert_page(migrate, addr, newpage, in migrate_vma_pages()
2972 &migrate->src[i]); in migrate_vma_pages()
2985 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
2993 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
3000 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
3024 void migrate_vma_finalize(struct migrate_vma *migrate) in migrate_vma_finalize() argument
3026 const unsigned long npages = migrate->npages; in migrate_vma_finalize()
3030 struct page *newpage = migrate_pfn_to_page(migrate->dst[i]); in migrate_vma_finalize()
3031 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_finalize()
3041 if (!(migrate->src[i] & MIGRATE_PFN_MIGRATE) || !newpage) { in migrate_vma_finalize()