Lines Matching refs:page
18 static int set_migratetype_isolate(struct page *page, int migratetype, int isol_flags) in set_migratetype_isolate() argument
20 struct zone *zone = page_zone(page); in set_migratetype_isolate()
21 struct page *unmovable; in set_migratetype_isolate()
31 if (is_migrate_isolate_page(page)) { in set_migratetype_isolate()
40 unmovable = has_unmovable_pages(zone, page, migratetype, isol_flags); in set_migratetype_isolate()
43 int mt = get_pageblock_migratetype(page); in set_migratetype_isolate()
45 set_pageblock_migratetype(page, MIGRATE_ISOLATE); in set_migratetype_isolate()
47 nr_pages = move_freepages_block(zone, page, MIGRATE_ISOLATE, in set_migratetype_isolate()
67 static void unset_migratetype_isolate(struct page *page, unsigned migratetype) in unset_migratetype_isolate() argument
74 struct page *buddy; in unset_migratetype_isolate()
76 zone = page_zone(page); in unset_migratetype_isolate()
78 if (!is_migrate_isolate_page(page)) in unset_migratetype_isolate()
89 if (PageBuddy(page)) { in unset_migratetype_isolate()
90 order = buddy_order(page); in unset_migratetype_isolate()
92 pfn = page_to_pfn(page); in unset_migratetype_isolate()
94 buddy = page + (buddy_pfn - pfn); in unset_migratetype_isolate()
97 __isolate_free_page(page, order); in unset_migratetype_isolate()
114 nr_pages = move_freepages_block(zone, page, migratetype, NULL); in unset_migratetype_isolate()
117 set_pageblock_migratetype(page, migratetype); in unset_migratetype_isolate()
119 __putback_isolated_page(page, order, migratetype); in unset_migratetype_isolate()
125 static inline struct page *
131 struct page *page; in __first_valid_page() local
133 page = pfn_to_online_page(pfn + i); in __first_valid_page()
134 if (!page) in __first_valid_page()
136 return page; in __first_valid_page()
187 struct page *page; in start_isolate_page_range() local
195 page = __first_valid_page(pfn, pageblock_nr_pages); in start_isolate_page_range()
196 if (page) { in start_isolate_page_range()
197 if (set_migratetype_isolate(page, migratetype, flags)) { in start_isolate_page_range()
208 struct page *page = pfn_to_online_page(pfn); in start_isolate_page_range() local
209 if (!page) in start_isolate_page_range()
211 unset_migratetype_isolate(page, migratetype); in start_isolate_page_range()
224 struct page *page; in undo_isolate_page_range() local
232 page = __first_valid_page(pfn, pageblock_nr_pages); in undo_isolate_page_range()
233 if (!page || !is_migrate_isolate_page(page)) in undo_isolate_page_range()
235 unset_migratetype_isolate(page, migratetype); in undo_isolate_page_range()
249 struct page *page; in __test_page_isolated_in_pageblock() local
252 page = pfn_to_page(pfn); in __test_page_isolated_in_pageblock()
253 if (PageBuddy(page)) in __test_page_isolated_in_pageblock()
259 pfn += 1 << buddy_order(page); in __test_page_isolated_in_pageblock()
260 else if ((flags & MEMORY_OFFLINE) && PageHWPoison(page)) in __test_page_isolated_in_pageblock()
263 else if ((flags & MEMORY_OFFLINE) && PageOffline(page) && in __test_page_isolated_in_pageblock()
264 !page_count(page)) in __test_page_isolated_in_pageblock()
283 struct page *page; in test_pages_isolated() local
293 page = __first_valid_page(pfn, pageblock_nr_pages); in test_pages_isolated()
294 if (page && !is_migrate_isolate_page(page)) in test_pages_isolated()
297 page = __first_valid_page(start_pfn, end_pfn - start_pfn); in test_pages_isolated()
298 if ((pfn < end_pfn) || !page) { in test_pages_isolated()
304 zone = page_zone(page); in test_pages_isolated()