Lines Matching refs:page
12 static int set_migratetype_isolate(struct page *page, in set_migratetype_isolate() argument
21 zone = page_zone(page); in set_migratetype_isolate()
25 pfn = page_to_pfn(page); in set_migratetype_isolate()
49 if (!has_unmovable_pages(zone, page, arg.pages_found, in set_migratetype_isolate()
61 int migratetype = get_pageblock_migratetype(page); in set_migratetype_isolate()
63 set_pageblock_migratetype(page, MIGRATE_ISOLATE); in set_migratetype_isolate()
65 nr_pages = move_freepages_block(zone, page, MIGRATE_ISOLATE); in set_migratetype_isolate()
76 static void unset_migratetype_isolate(struct page *page, unsigned migratetype) in unset_migratetype_isolate() argument
80 struct page *isolated_page = NULL; in unset_migratetype_isolate()
83 struct page *buddy; in unset_migratetype_isolate()
85 zone = page_zone(page); in unset_migratetype_isolate()
87 if (get_pageblock_migratetype(page) != MIGRATE_ISOLATE) in unset_migratetype_isolate()
98 if (PageBuddy(page)) { in unset_migratetype_isolate()
99 order = page_order(page); in unset_migratetype_isolate()
101 page_idx = page_to_pfn(page) & ((1 << MAX_ORDER) - 1); in unset_migratetype_isolate()
103 buddy = page + (buddy_idx - page_idx); in unset_migratetype_isolate()
107 __isolate_free_page(page, order); in unset_migratetype_isolate()
108 kernel_map_pages(page, (1 << order), 1); in unset_migratetype_isolate()
109 set_page_refcounted(page); in unset_migratetype_isolate()
110 isolated_page = page; in unset_migratetype_isolate()
121 nr_pages = move_freepages_block(zone, page, migratetype); in unset_migratetype_isolate()
124 set_pageblock_migratetype(page, migratetype); in unset_migratetype_isolate()
132 static inline struct page *
163 struct page *page; in start_isolate_page_range() local
171 page = __first_valid_page(pfn, pageblock_nr_pages); in start_isolate_page_range()
172 if (page && in start_isolate_page_range()
173 set_migratetype_isolate(page, skip_hwpoisoned_pages)) { in start_isolate_page_range()
195 struct page *page; in undo_isolate_page_range() local
201 page = __first_valid_page(pfn, pageblock_nr_pages); in undo_isolate_page_range()
202 if (!page || get_pageblock_migratetype(page) != MIGRATE_ISOLATE) in undo_isolate_page_range()
204 unset_migratetype_isolate(page, migratetype); in undo_isolate_page_range()
219 struct page *page; in __test_page_isolated_in_pageblock() local
226 page = pfn_to_page(pfn); in __test_page_isolated_in_pageblock()
227 if (PageBuddy(page)) in __test_page_isolated_in_pageblock()
233 pfn += 1 << page_order(page); in __test_page_isolated_in_pageblock()
234 else if (skip_hwpoisoned_pages && PageHWPoison(page)) in __test_page_isolated_in_pageblock()
249 struct page *page; in test_pages_isolated() local
259 page = __first_valid_page(pfn, pageblock_nr_pages); in test_pages_isolated()
260 if (page && get_pageblock_migratetype(page) != MIGRATE_ISOLATE) in test_pages_isolated()
263 page = __first_valid_page(start_pfn, end_pfn - start_pfn); in test_pages_isolated()
264 if ((pfn < end_pfn) || !page) in test_pages_isolated()
267 zone = page_zone(page); in test_pages_isolated()
275 struct page *alloc_migrate_target(struct page *page, unsigned long private, in alloc_migrate_target() argument
285 if (PageHuge(page)) { in alloc_migrate_target()
286 int node = next_online_node(page_to_nid(page)); in alloc_migrate_target()
289 return alloc_huge_page_node(page_hstate(compound_head(page)), in alloc_migrate_target()
293 if (PageHighMem(page)) in alloc_migrate_target()