Lines Matching refs:nr_pages
233 unsigned long i, pfn, end_pfn, nr_pages; in register_page_bootmem_info_node() local
237 nr_pages = PAGE_ALIGN(sizeof(struct pglist_data)) >> PAGE_SHIFT; in register_page_bootmem_info_node()
240 for (i = 0; i < nr_pages; i++, page++) in register_page_bootmem_info_node()
260 static int check_pfn_span(unsigned long pfn, unsigned long nr_pages, in check_pfn_span() argument
279 || !IS_ALIGNED(nr_pages, min_align)) { in check_pfn_span()
281 reason, pfn, pfn + nr_pages - 1); in check_pfn_span()
288 unsigned long nr_pages) in check_hotplug_memory_addressable() argument
290 const u64 max_addr = PFN_PHYS(pfn + nr_pages) - 1; in check_hotplug_memory_addressable()
309 int __ref __add_pages(int nid, unsigned long pfn, unsigned long nr_pages, in __add_pages() argument
312 const unsigned long end_pfn = pfn + nr_pages; in __add_pages()
320 err = check_hotplug_memory_addressable(pfn, nr_pages); in __add_pages()
329 || vmem_altmap_offset(altmap) > nr_pages) { in __add_pages()
336 err = check_pfn_span(pfn, nr_pages, "add"); in __add_pages()
472 unsigned long nr_pages) in remove_pfn_range_from_zone() argument
474 const unsigned long end_pfn = start_pfn + nr_pages; in remove_pfn_range_from_zone()
502 shrink_zone_span(zone, start_pfn, start_pfn + nr_pages); in remove_pfn_range_from_zone()
509 static void __remove_section(unsigned long pfn, unsigned long nr_pages, in __remove_section() argument
518 sparse_remove_section(ms, pfn, nr_pages, map_offset, altmap); in __remove_section()
532 void __remove_pages(unsigned long pfn, unsigned long nr_pages, in __remove_pages() argument
535 const unsigned long end_pfn = pfn + nr_pages; in __remove_pages()
541 if (check_pfn_span(pfn, nr_pages, "remove")) in __remove_pages()
609 static void online_pages_range(unsigned long start_pfn, unsigned long nr_pages) in online_pages_range() argument
611 const unsigned long end_pfn = start_pfn + nr_pages; in online_pages_range()
628 static void node_states_check_changes_online(unsigned long nr_pages, in node_states_check_changes_online() argument
660 unsigned long nr_pages) in resize_zone_range() argument
667 zone->spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - zone->zone_start_pfn; in resize_zone_range()
671 unsigned long nr_pages) in resize_pgdat_range() argument
678 pgdat->node_spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - pgdat->node_start_pfn; in resize_pgdat_range()
691 unsigned long nr_pages, in move_pfn_range_to_zone() argument
704 init_currently_empty_zone(zone, start_pfn, nr_pages); in move_pfn_range_to_zone()
705 resize_zone_range(zone, start_pfn, nr_pages); in move_pfn_range_to_zone()
707 resize_pgdat_range(pgdat, start_pfn, nr_pages); in move_pfn_range_to_zone()
716 memmap_init_zone(nr_pages, nid, zone_idx(zone), start_pfn, 0, in move_pfn_range_to_zone()
728 unsigned long nr_pages) in default_kernel_zone_for_pfn() argument
736 if (zone_intersects(zone, start_pfn, nr_pages)) in default_kernel_zone_for_pfn()
744 unsigned long nr_pages) in default_zone_for_pfn() argument
747 nr_pages); in default_zone_for_pfn()
749 bool in_kernel = zone_intersects(kernel_zone, start_pfn, nr_pages); in default_zone_for_pfn()
750 bool in_movable = zone_intersects(movable_zone, start_pfn, nr_pages); in default_zone_for_pfn()
768 unsigned long start_pfn, unsigned long nr_pages) in zone_for_pfn_range() argument
771 return default_kernel_zone_for_pfn(nid, start_pfn, nr_pages); in zone_for_pfn_range()
776 return default_zone_for_pfn(nid, start_pfn, nr_pages); in zone_for_pfn_range()
779 int __ref online_pages(unsigned long pfn, unsigned long nr_pages, in online_pages() argument
789 if (WARN_ON_ONCE(!nr_pages || in online_pages()
790 !IS_ALIGNED(pfn | nr_pages, PAGES_PER_SECTION))) in online_pages()
796 zone = zone_for_pfn_range(online_type, nid, pfn, nr_pages); in online_pages()
797 move_pfn_range_to_zone(zone, pfn, nr_pages, NULL, MIGRATE_ISOLATE); in online_pages()
800 arg.nr_pages = nr_pages; in online_pages()
801 node_states_check_changes_online(nr_pages, zone, &arg); in online_pages()
813 zone->nr_isolate_pageblock += nr_pages / pageblock_nr_pages; in online_pages()
826 online_pages_range(pfn, nr_pages); in online_pages()
827 zone->present_pages += nr_pages; in online_pages()
830 zone->zone_pgdat->node_present_pages += nr_pages; in online_pages()
839 undo_isolate_page_range(pfn, pfn + nr_pages, MIGRATE_MOVABLE); in online_pages()
863 (((unsigned long long) pfn + nr_pages) << PAGE_SHIFT) - 1); in online_pages()
865 remove_pfn_range_from_zone(zone, pfn, nr_pages); in online_pages()
1427 static void node_states_check_changes_offline(unsigned long nr_pages, in node_states_check_changes_offline() argument
1448 if (zone_idx(zone) <= ZONE_NORMAL && nr_pages >= present_pages) in node_states_check_changes_offline()
1461 if (zone_idx(zone) <= ZONE_HIGHMEM && nr_pages >= present_pages) in node_states_check_changes_offline()
1477 if (nr_pages >= present_pages) in node_states_check_changes_offline()
1494 unsigned long nr_pages, void *data) in count_system_ram_pages_cb() argument
1498 *nr_system_ram_pages += nr_pages; in count_system_ram_pages_cb()
1502 int __ref offline_pages(unsigned long start_pfn, unsigned long nr_pages) in offline_pages() argument
1504 const unsigned long end_pfn = start_pfn + nr_pages; in offline_pages()
1513 if (WARN_ON_ONCE(!nr_pages || in offline_pages()
1514 !IS_ALIGNED(start_pfn | nr_pages, PAGES_PER_SECTION))) in offline_pages()
1527 walk_system_ram_range(start_pfn, nr_pages, &system_ram_pages, in offline_pages()
1529 if (system_ram_pages != nr_pages) { in offline_pages()
1558 arg.nr_pages = nr_pages; in offline_pages()
1559 node_states_check_changes_offline(nr_pages, zone, &arg); in offline_pages()
1623 pr_info("Offlined Pages %ld\n", nr_pages); in offline_pages()
1631 zone->nr_isolate_pageblock -= nr_pages / pageblock_nr_pages; in offline_pages()
1636 adjust_managed_page_count(pfn_to_page(start_pfn), -nr_pages); in offline_pages()
1637 zone->present_pages -= nr_pages; in offline_pages()
1640 zone->zone_pgdat->node_present_pages -= nr_pages; in offline_pages()
1660 remove_pfn_range_from_zone(zone, start_pfn, nr_pages); in offline_pages()