• Home
  • Raw
  • Download

Lines Matching refs:migrate

2255 	struct migrate_vma *migrate = walk->private;  in migrate_vma_collect_hole()  local
2261 migrate->src[migrate->npages] = 0; in migrate_vma_collect_hole()
2262 migrate->dst[migrate->npages] = 0; in migrate_vma_collect_hole()
2263 migrate->npages++; in migrate_vma_collect_hole()
2269 migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE; in migrate_vma_collect_hole()
2270 migrate->dst[migrate->npages] = 0; in migrate_vma_collect_hole()
2271 migrate->npages++; in migrate_vma_collect_hole()
2272 migrate->cpages++; in migrate_vma_collect_hole()
2282 struct migrate_vma *migrate = walk->private; in migrate_vma_collect_skip() local
2286 migrate->dst[migrate->npages] = 0; in migrate_vma_collect_skip()
2287 migrate->src[migrate->npages++] = 0; in migrate_vma_collect_skip()
2298 struct migrate_vma *migrate = walk->private; in migrate_vma_collect_pmd() local
2362 migrate->cpages++; in migrate_vma_collect_pmd()
2378 if (!(migrate->flags & in migrate_vma_collect_pmd()
2380 page->pgmap->owner != migrate->pgmap_owner) in migrate_vma_collect_pmd()
2388 if (!(migrate->flags & MIGRATE_VMA_SELECT_SYSTEM)) in migrate_vma_collect_pmd()
2393 migrate->cpages++; in migrate_vma_collect_pmd()
2396 page = vm_normal_page(migrate->vma, addr, pte); in migrate_vma_collect_pmd()
2417 migrate->cpages++; in migrate_vma_collect_pmd()
2460 migrate->dst[migrate->npages] = 0; in migrate_vma_collect_pmd()
2461 migrate->src[migrate->npages++] = mpfn; in migrate_vma_collect_pmd()
2487 static void migrate_vma_collect(struct migrate_vma *migrate) in migrate_vma_collect() argument
2496 mmu_notifier_range_init_migrate(&range, 0, migrate->vma, in migrate_vma_collect()
2497 migrate->vma->vm_mm, migrate->start, migrate->end, in migrate_vma_collect()
2498 migrate->pgmap_owner); in migrate_vma_collect()
2501 walk_page_range(migrate->vma->vm_mm, migrate->start, migrate->end, in migrate_vma_collect()
2502 &migrate_vma_walk_ops, migrate); in migrate_vma_collect()
2505 migrate->end = migrate->start + (migrate->npages << PAGE_SHIFT); in migrate_vma_collect()
2570 static void migrate_vma_prepare(struct migrate_vma *migrate) in migrate_vma_prepare() argument
2572 const unsigned long npages = migrate->npages; in migrate_vma_prepare()
2573 const unsigned long start = migrate->start; in migrate_vma_prepare()
2579 for (i = 0; (i < npages) && migrate->cpages; i++) { in migrate_vma_prepare()
2580 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_prepare()
2586 if (!(migrate->src[i] & MIGRATE_PFN_LOCKED)) { in migrate_vma_prepare()
2596 migrate->src[i] = 0; in migrate_vma_prepare()
2597 migrate->cpages--; in migrate_vma_prepare()
2602 migrate->src[i] |= MIGRATE_PFN_LOCKED; in migrate_vma_prepare()
2615 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_prepare()
2616 migrate->cpages--; in migrate_vma_prepare()
2619 migrate->src[i] = 0; in migrate_vma_prepare()
2621 migrate->cpages--; in migrate_vma_prepare()
2633 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_prepare()
2634 migrate->cpages--; in migrate_vma_prepare()
2642 migrate->src[i] = 0; in migrate_vma_prepare()
2644 migrate->cpages--; in migrate_vma_prepare()
2655 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_prepare()
2657 if (!page || (migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_prepare()
2660 remove_migration_pte(page, migrate->vma, addr, page); in migrate_vma_prepare()
2662 migrate->src[i] = 0; in migrate_vma_prepare()
2680 static void migrate_vma_unmap(struct migrate_vma *migrate) in migrate_vma_unmap() argument
2683 const unsigned long npages = migrate->npages; in migrate_vma_unmap()
2684 const unsigned long start = migrate->start; in migrate_vma_unmap()
2688 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_unmap()
2690 if (!page || !(migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_unmap()
2703 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_unmap()
2704 migrate->cpages--; in migrate_vma_unmap()
2709 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_unmap()
2711 if (!page || (migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_unmap()
2716 migrate->src[i] = 0; in migrate_vma_unmap()
2839 static void migrate_vma_insert_page(struct migrate_vma *migrate, in migrate_vma_insert_page() argument
2845 struct vm_area_struct *vma = migrate->vma; in migrate_vma_insert_page()
2979 void migrate_vma_pages(struct migrate_vma *migrate) in migrate_vma_pages() argument
2981 const unsigned long npages = migrate->npages; in migrate_vma_pages()
2982 const unsigned long start = migrate->start; in migrate_vma_pages()
2988 struct page *newpage = migrate_pfn_to_page(migrate->dst[i]); in migrate_vma_pages()
2989 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_pages()
2994 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
2999 if (!(migrate->src[i] & MIGRATE_PFN_MIGRATE)) in migrate_vma_pages()
3007 migrate->vma->vm_mm, in migrate_vma_pages()
3008 addr, migrate->end); in migrate_vma_pages()
3011 migrate_vma_insert_page(migrate, addr, newpage, in migrate_vma_pages()
3012 &migrate->src[i], in migrate_vma_pages()
3013 &migrate->dst[i]); in migrate_vma_pages()
3026 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
3034 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
3041 migrate->src[i] &= ~MIGRATE_PFN_MIGRATE; in migrate_vma_pages()
3065 void migrate_vma_finalize(struct migrate_vma *migrate) in migrate_vma_finalize() argument
3067 const unsigned long npages = migrate->npages; in migrate_vma_finalize()
3071 struct page *newpage = migrate_pfn_to_page(migrate->dst[i]); in migrate_vma_finalize()
3072 struct page *page = migrate_pfn_to_page(migrate->src[i]); in migrate_vma_finalize()
3082 if (!(migrate->src[i] & MIGRATE_PFN_MIGRATE) || !newpage) { in migrate_vma_finalize()