Lines Matching refs:start_pfn
173 static void register_page_bootmem_info_section(unsigned long start_pfn)
180 section_nr = pfn_to_section_nr(start_pfn);
208 static void register_page_bootmem_info_section(unsigned long start_pfn)
215 section_nr = pfn_to_section_nr(start_pfn);
354 /* find the smallest valid pfn in the range [start_pfn, end_pfn) */
356 unsigned long start_pfn,
359 for (; start_pfn < end_pfn; start_pfn += PAGES_PER_SUBSECTION) {
360 if (unlikely(!pfn_to_online_page(start_pfn)))
363 if (unlikely(pfn_to_nid(start_pfn) != nid))
366 if (zone != page_zone(pfn_to_page(start_pfn)))
369 return start_pfn;
375 /* find the biggest valid pfn in the range [start_pfn, end_pfn). */
377 unsigned long start_pfn,
384 for (; pfn >= start_pfn; pfn -= PAGES_PER_SUBSECTION) {
400 static void shrink_zone_span(struct zone *zone, unsigned long start_pfn,
407 if (zone->zone_start_pfn == start_pfn) {
431 start_pfn);
472 unsigned long start_pfn,
475 const unsigned long end_pfn = start_pfn + nr_pages;
480 for (pfn = start_pfn; pfn < end_pfn; pfn += cur_nr_pages) {
503 shrink_zone_span(zone, start_pfn, start_pfn + nr_pages);
611 static void online_pages_range(unsigned long start_pfn, unsigned long nr_pages)
613 const unsigned long end_pfn = start_pfn + nr_pages;
622 for (pfn = start_pfn; pfn < end_pfn; pfn += MAX_ORDER_NR_PAGES)
626 online_mem_sections(start_pfn, end_pfn);
661 static void __meminit resize_zone_range(struct zone *zone, unsigned long start_pfn,
666 if (zone_is_empty(zone) || start_pfn < zone->zone_start_pfn)
667 zone->zone_start_pfn = start_pfn;
669 zone->spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - zone->zone_start_pfn;
672 static void __meminit resize_pgdat_range(struct pglist_data *pgdat, unsigned long start_pfn,
677 if (!pgdat->node_spanned_pages || start_pfn < pgdat->node_start_pfn)
678 pgdat->node_start_pfn = start_pfn;
680 pgdat->node_spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - pgdat->node_start_pfn;
692 void __ref move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn,
706 init_currently_empty_zone(zone, start_pfn, nr_pages);
707 resize_zone_range(zone, start_pfn, nr_pages);
709 resize_pgdat_range(pgdat, start_pfn, nr_pages);
718 memmap_init_zone(nr_pages, nid, zone_idx(zone), start_pfn, 0,
729 static struct zone *default_kernel_zone_for_pfn(int nid, unsigned long start_pfn,
738 if (zone_intersects(zone, start_pfn, nr_pages))
745 static inline struct zone *default_zone_for_pfn(int nid, unsigned long start_pfn,
748 struct zone *kernel_zone = default_kernel_zone_for_pfn(nid, start_pfn,
751 bool in_kernel = zone_intersects(kernel_zone, start_pfn, nr_pages);
752 bool in_movable = zone_intersects(movable_zone, start_pfn, nr_pages);
770 unsigned long start_pfn, unsigned long nr_pages)
773 return default_kernel_zone_for_pfn(nid, start_pfn, nr_pages);
778 return default_zone_for_pfn(nid, start_pfn, nr_pages);
801 arg.start_pfn = pfn;
1193 struct zone *test_pages_in_a_zone(unsigned long start_pfn,
1200 for (pfn = start_pfn, sec_end_pfn = SECTION_ALIGN_UP(start_pfn + 1);
1280 do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
1289 for (pfn = start_pfn; pfn < end_pfn; pfn++) {
1453 static int count_system_ram_pages_cb(unsigned long start_pfn,
1462 int __ref offline_pages(unsigned long start_pfn, unsigned long nr_pages)
1464 const unsigned long end_pfn = start_pfn + nr_pages;
1474 !IS_ALIGNED(start_pfn | nr_pages, PAGES_PER_SECTION)))
1487 walk_system_ram_range(start_pfn, nr_pages, &system_ram_pages,
1497 zone = test_pages_in_a_zone(start_pfn, end_pfn);
1506 ret = start_isolate_page_range(start_pfn, end_pfn,
1514 arg.start_pfn = start_pfn;
1526 pfn = start_pfn;
1557 ret = dissolve_free_huge_pages(start_pfn, end_pfn);
1575 ret = test_pages_isolated(start_pfn, end_pfn, MEMORY_OFFLINE);
1581 __offline_isolated_pages(start_pfn, end_pfn);
1594 adjust_managed_page_count(pfn_to_page(start_pfn), -nr_pages);
1621 remove_pfn_range_from_zone(zone, start_pfn, nr_pages);
1626 undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
1630 (unsigned long long) start_pfn << PAGE_SHIFT,