Lines Matching refs:page
18 static int set_migratetype_isolate(struct page *page, int migratetype, int isol_flags) in set_migratetype_isolate() argument
26 zone = page_zone(page); in set_migratetype_isolate()
35 if (is_migrate_isolate_page(page)) in set_migratetype_isolate()
38 pfn = page_to_pfn(page); in set_migratetype_isolate()
62 if (!has_unmovable_pages(zone, page, arg.pages_found, migratetype, in set_migratetype_isolate()
74 int mt = get_pageblock_migratetype(page); in set_migratetype_isolate()
76 set_pageblock_migratetype(page, MIGRATE_ISOLATE); in set_migratetype_isolate()
78 nr_pages = move_freepages_block(zone, page, MIGRATE_ISOLATE, in set_migratetype_isolate()
90 static void unset_migratetype_isolate(struct page *page, unsigned migratetype) in unset_migratetype_isolate() argument
97 struct page *buddy; in unset_migratetype_isolate()
99 zone = page_zone(page); in unset_migratetype_isolate()
101 if (!is_migrate_isolate_page(page)) in unset_migratetype_isolate()
112 if (PageBuddy(page)) { in unset_migratetype_isolate()
113 order = page_order(page); in unset_migratetype_isolate()
115 pfn = page_to_pfn(page); in unset_migratetype_isolate()
117 buddy = page + (buddy_pfn - pfn); in unset_migratetype_isolate()
121 __isolate_free_page(page, order); in unset_migratetype_isolate()
133 nr_pages = move_freepages_block(zone, page, migratetype, NULL); in unset_migratetype_isolate()
136 set_pageblock_migratetype(page, migratetype); in unset_migratetype_isolate()
141 post_alloc_hook(page, order, __GFP_MOVABLE); in unset_migratetype_isolate()
142 __free_pages(page, order); in unset_migratetype_isolate()
146 static inline struct page *
152 struct page *page; in __first_valid_page() local
154 page = pfn_to_online_page(pfn + i); in __first_valid_page()
155 if (!page) in __first_valid_page()
157 return page; in __first_valid_page()
198 struct page *page; in start_isolate_page_range() local
207 page = __first_valid_page(pfn, pageblock_nr_pages); in start_isolate_page_range()
208 if (page) { in start_isolate_page_range()
209 if (set_migratetype_isolate(page, migratetype, flags)) { in start_isolate_page_range()
221 struct page *page = pfn_to_online_page(pfn); in start_isolate_page_range() local
222 if (!page) in start_isolate_page_range()
224 unset_migratetype_isolate(page, migratetype); in start_isolate_page_range()
237 struct page *page; in undo_isolate_page_range() local
245 page = __first_valid_page(pfn, pageblock_nr_pages); in undo_isolate_page_range()
246 if (!page || !is_migrate_isolate_page(page)) in undo_isolate_page_range()
248 unset_migratetype_isolate(page, migratetype); in undo_isolate_page_range()
262 struct page *page; in __test_page_isolated_in_pageblock() local
269 page = pfn_to_page(pfn); in __test_page_isolated_in_pageblock()
270 if (PageBuddy(page)) in __test_page_isolated_in_pageblock()
276 pfn += 1 << page_order(page); in __test_page_isolated_in_pageblock()
277 else if (skip_hwpoisoned_pages && PageHWPoison(page)) in __test_page_isolated_in_pageblock()
292 struct page *page; in test_pages_isolated() local
301 page = __first_valid_page(pfn, pageblock_nr_pages); in test_pages_isolated()
302 if (page && !is_migrate_isolate_page(page)) in test_pages_isolated()
305 page = __first_valid_page(start_pfn, end_pfn - start_pfn); in test_pages_isolated()
306 if ((pfn < end_pfn) || !page) in test_pages_isolated()
309 zone = page_zone(page); in test_pages_isolated()
320 struct page *alloc_migrate_target(struct page *page, unsigned long private) in alloc_migrate_target() argument
322 return new_page_nodemask(page, numa_node_id(), &node_states[N_MEMORY]); in alloc_migrate_target()