H A D | page_alloc.c | 238 void set_pageblock_migratetype(struct page *page, int migratetype) set_pageblock_migratetype() argument 241 migratetype < MIGRATE_PCPTYPES)) set_pageblock_migratetype() 242 migratetype = MIGRATE_UNMOVABLE; set_pageblock_migratetype() 244 set_pageblock_flags_group(page, (unsigned long)migratetype, set_pageblock_migratetype() 451 unsigned int order, int migratetype) set_page_guard() 464 __mod_zone_freepage_state(zone, -(1 << order), migratetype); set_page_guard() 468 unsigned int order, int migratetype) clear_page_guard() 479 if (!is_migrate_isolate(migratetype)) clear_page_guard() 480 __mod_zone_freepage_state(zone, (1 << order), migratetype); clear_page_guard() 485 unsigned int order, int migratetype) {} clear_page_guard() 487 unsigned int order, int migratetype) {} 576 int migratetype) __free_one_page() 589 VM_BUG_ON(migratetype == -1); __free_one_page() 590 if (likely(!is_migrate_isolate(migratetype))) __free_one_page() 591 __mod_zone_freepage_state(zone, 1 << order, migratetype); __free_one_page() 609 clear_page_guard(zone, buddy, order, migratetype); __free_one_page() 636 if (migratetype != buddy_mt __free_one_page() 637 && (is_migrate_isolate(migratetype) || __free_one_page() 664 &zone->free_area[order].free_list[migratetype]); __free_one_page() 669 list_add(&page->lru, &zone->free_area[order].free_list[migratetype]); __free_one_page() 717 int migratetype = 0; free_pcppages_bulk() local 740 if (++migratetype == MIGRATE_PCPTYPES) free_pcppages_bulk() 741 migratetype = 0; free_pcppages_bulk() 742 list = &pcp->lists[migratetype]; free_pcppages_bulk() 750 int mt; /* migratetype of the to-be-freed page */ free_pcppages_bulk() 770 int migratetype) free_one_page() 779 is_migrate_isolate(migratetype))) { free_one_page() 780 migratetype = get_pfnblock_migratetype(page, pfn); free_one_page() 782 __free_one_page(page, pfn, zone, order, migratetype); free_one_page() 841 int migratetype; __free_pages_ok() local 847 migratetype = get_pfnblock_migratetype(page, pfn); __free_pages_ok() 850 set_freepage_migratetype(page, migratetype); __free_pages_ok() 851 free_one_page(page_zone(page), page, pfn, order, migratetype); __free_pages_ok() local 923 int migratetype) expand() 942 set_page_guard(zone, &page[size], high, migratetype); expand() 945 list_add(&page[size].lru, &area->free_list[migratetype]); expand() 1025 * Go through the free lists for the given migratetype and remove 1030 int migratetype) __rmqueue_smallest() 1039 if (list_empty(&area->free_list[migratetype])) __rmqueue_smallest() 1042 page = list_entry(area->free_list[migratetype].next, __rmqueue_smallest() 1047 expand(zone, page, order, current_order, area, migratetype); __rmqueue_smallest() 1048 set_freepage_migratetype(page, migratetype); __rmqueue_smallest() 1091 int migratetype) move_freepages() 1124 &zone->free_area[order].free_list[migratetype]); move_freepages() 1125 set_freepage_migratetype(page, migratetype); move_freepages() 1134 int migratetype) move_freepages_block() 1151 return move_freepages(zone, start_page, end_page, migratetype); move_freepages_block() 1155 int start_order, int migratetype) change_pageblock_range() 1160 set_pageblock_migratetype(pageblock_page, migratetype); change_pageblock_range() 1166 * When we are falling back to another migratetype during allocation, try to 1202 * pages are moved, we can change migratetype of pageblock and permanently 1203 * use it's pages as requested migratetype in the future. 1229 * fragmentation due to mixed migratetype pages in one pageblock. 1232 int migratetype, bool only_stealable, bool *can_steal) find_suitable_fallback() 1242 fallback_mt = fallbacks[migratetype][i]; find_suitable_fallback() 1249 if (can_steal_fallback(order, migratetype)) find_suitable_fallback() 1296 * migratetype depending on the decisions in __rmqueue_fallback() 1318 int migratetype) __rmqueue() 1323 page = __rmqueue_smallest(zone, order, migratetype); __rmqueue() 1325 if (unlikely(!page) && migratetype != MIGRATE_RESERVE) { __rmqueue() 1326 if (migratetype == MIGRATE_MOVABLE) __rmqueue() 1330 page = __rmqueue_fallback(zone, order, migratetype); __rmqueue() 1338 migratetype = MIGRATE_RESERVE; __rmqueue() 1343 trace_mm_page_alloc_zone_locked(page, order, migratetype); __rmqueue() 1354 int migratetype, bool cold) rmqueue_bulk() 1360 struct page *page = __rmqueue(zone, order, migratetype); rmqueue_bulk() 1569 int migratetype; free_hot_cold_page() local 1574 migratetype = get_pfnblock_migratetype(page, pfn); free_hot_cold_page() 1575 set_freepage_migratetype(page, migratetype); free_hot_cold_page() 1586 if (migratetype >= MIGRATE_PCPTYPES) { free_hot_cold_page() 1587 if (unlikely(is_migrate_isolate(migratetype))) { free_hot_cold_page() 1588 free_one_page(zone, page, pfn, 0, migratetype); free_hot_cold_page() 1591 migratetype = MIGRATE_MOVABLE; free_hot_cold_page() 1596 list_add(&page->lru, &pcp->lists[migratetype]); free_hot_cold_page() 1598 list_add_tail(&page->lru, &pcp->lists[migratetype]); free_hot_cold_page() 1697 * being used for migration, the migratetype of the block also changes. 1728 gfp_t gfp_flags, int migratetype) buffered_rmqueue() 1740 list = &pcp->lists[migratetype]; buffered_rmqueue() 1744 migratetype, cold); buffered_rmqueue() 1771 page = __rmqueue(zone, order, migratetype); buffered_rmqueue() 2252 gfp_mask, ac->migratetype); get_page_from_freelist() 2880 .migratetype = gfpflags_to_migratetype(gfp_mask), __alloc_pages_nodemask() 2900 if (IS_ENABLED(CONFIG_CMA) && ac.migratetype == MIGRATE_MOVABLE) __alloc_pages_nodemask() 2933 trace_mm_page_alloc(page, order, alloc_mask, ac.migratetype); __alloc_pages_nodemask() 4356 int migratetype; pageset_init() local 4362 for (migratetype = 0; migratetype < MIGRATE_PCPTYPES; migratetype++) pageset_init() 4363 INIT_LIST_HEAD(&pcp->lists[migratetype]); pageset_init() 6418 * @migratetype: migratetype of the underlaying pageblocks (either 6420 * in range must have the same migratetype and it must 6435 unsigned migratetype) alloc_contig_range() 6475 pfn_max_align_up(end), migratetype, alloc_contig_range() 6537 pfn_max_align_up(end), migratetype); alloc_contig_range() local 450 set_page_guard(struct zone *zone, struct page *page, unsigned int order, int migratetype) set_page_guard() argument 467 clear_page_guard(struct zone *zone, struct page *page, unsigned int order, int migratetype) clear_page_guard() argument 484 set_page_guard(struct zone *zone, struct page *page, unsigned int order, int migratetype) set_page_guard() argument 486 clear_page_guard(struct zone *zone, struct page *page, unsigned int order, int migratetype) clear_page_guard() argument 573 __free_one_page(struct page *page, unsigned long pfn, struct zone *zone, unsigned int order, int migratetype) __free_one_page() argument 767 free_one_page(struct zone *zone, struct page *page, unsigned long pfn, unsigned int order, int migratetype) free_one_page() argument 921 expand(struct zone *zone, struct page *page, int low, int high, struct free_area *area, int migratetype) expand() argument 1029 __rmqueue_smallest(struct zone *zone, unsigned int order, int migratetype) __rmqueue_smallest() argument 1089 move_freepages(struct zone *zone, struct page *start_page, struct page *end_page, int migratetype) move_freepages() argument 1133 move_freepages_block(struct zone *zone, struct page *page, int migratetype) move_freepages_block() argument 1154 change_pageblock_range(struct page *pageblock_page, int start_order, int migratetype) change_pageblock_range() argument 1231 find_suitable_fallback(struct free_area *area, unsigned int order, int migratetype, bool only_stealable, bool *can_steal) find_suitable_fallback() argument 1317 __rmqueue(struct zone *zone, unsigned int order, int migratetype) __rmqueue() argument 1352 rmqueue_bulk(struct zone *zone, unsigned int order, unsigned long count, struct list_head *list, int migratetype, bool cold) rmqueue_bulk() argument 1726 buffered_rmqueue(struct zone *preferred_zone, struct zone *zone, unsigned int order, gfp_t gfp_flags, int migratetype) buffered_rmqueue() argument 6434 alloc_contig_range(unsigned long start, unsigned long end, unsigned migratetype) alloc_contig_range() argument
|