Lines Matching refs:pgdat
245 void register_page_bootmem_info_node(struct pglist_data *pgdat) in register_page_bootmem_info_node() argument
248 int node = pgdat->node_id; in register_page_bootmem_info_node()
253 page = virt_to_page(pgdat); in register_page_bootmem_info_node()
258 zone = &pgdat->node_zones[0]; in register_page_bootmem_info_node()
259 for (; zone < pgdat->node_zones + MAX_NR_ZONES - 1; zone++) { in register_page_bootmem_info_node()
271 pfn = pgdat->node_start_pfn; in register_page_bootmem_info_node()
272 end_pfn = pgdat_end_pfn(pgdat); in register_page_bootmem_info_node()
431 static void __meminit grow_pgdat_span(struct pglist_data *pgdat, unsigned long start_pfn, in grow_pgdat_span() argument
434 unsigned long old_pgdat_end_pfn = pgdat_end_pfn(pgdat); in grow_pgdat_span()
436 if (!pgdat->node_spanned_pages || start_pfn < pgdat->node_start_pfn) in grow_pgdat_span()
437 pgdat->node_start_pfn = start_pfn; in grow_pgdat_span()
439 pgdat->node_spanned_pages = max(old_pgdat_end_pfn, end_pfn) - in grow_pgdat_span()
440 pgdat->node_start_pfn; in grow_pgdat_span()
445 struct pglist_data *pgdat = zone->zone_pgdat; in __add_zone() local
447 int nid = pgdat->node_id; in __add_zone()
452 zone_type = zone - pgdat->node_zones; in __add_zone()
652 static void shrink_pgdat_span(struct pglist_data *pgdat, in shrink_pgdat_span() argument
655 unsigned long pgdat_start_pfn = pgdat->node_start_pfn; in shrink_pgdat_span()
656 unsigned long p = pgdat_end_pfn(pgdat); /* pgdat_end_pfn namespace clash */ in shrink_pgdat_span()
660 int nid = pgdat->node_id; in shrink_pgdat_span()
672 pgdat->node_start_pfn = pfn; in shrink_pgdat_span()
673 pgdat->node_spanned_pages = pgdat_end_pfn - pfn; in shrink_pgdat_span()
685 pgdat->node_spanned_pages = pfn - pgdat_start_pfn + 1; in shrink_pgdat_span()
714 pgdat->node_start_pfn = 0; in shrink_pgdat_span()
715 pgdat->node_spanned_pages = 0; in shrink_pgdat_span()
720 struct pglist_data *pgdat = zone->zone_pgdat; in __remove_zone() local
725 zone_type = zone - pgdat->node_zones; in __remove_zone()
729 shrink_pgdat_span(pgdat, start_pfn, start_pfn + nr_pages); in __remove_zone()
1079 static void reset_node_present_pages(pg_data_t *pgdat) in reset_node_present_pages() argument
1083 for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) in reset_node_present_pages()
1086 pgdat->node_present_pages = 0; in reset_node_present_pages()
1092 struct pglist_data *pgdat; in hotadd_new_pgdat() local
1097 pgdat = NODE_DATA(nid); in hotadd_new_pgdat()
1098 if (!pgdat) { in hotadd_new_pgdat()
1099 pgdat = arch_alloc_nodedata(nid); in hotadd_new_pgdat()
1100 if (!pgdat) in hotadd_new_pgdat()
1103 arch_refresh_nodedata(nid, pgdat); in hotadd_new_pgdat()
1106 pgdat->nr_zones = 0; in hotadd_new_pgdat()
1107 pgdat->classzone_idx = 0; in hotadd_new_pgdat()
1120 build_all_zonelists(pgdat, NULL); in hotadd_new_pgdat()
1129 reset_node_managed_pages(pgdat); in hotadd_new_pgdat()
1136 reset_node_present_pages(pgdat); in hotadd_new_pgdat()
1138 return pgdat; in hotadd_new_pgdat()
1141 static void rollback_node_hotadd(int nid, pg_data_t *pgdat) in rollback_node_hotadd() argument
1144 arch_free_nodedata(pgdat); in rollback_node_hotadd()
1156 pg_data_t *pgdat; in try_online_node() local
1163 pgdat = hotadd_new_pgdat(nid, 0); in try_online_node()
1164 if (!pgdat) { in try_online_node()
1173 if (pgdat->node_zonelists->_zonerefs->zone == NULL) { in try_online_node()
1209 pg_data_t *pgdat = NODE_DATA(nid); in should_add_memory_movable() local
1210 struct zone *movable_zone = pgdat->node_zones + ZONE_MOVABLE; in should_add_memory_movable()
1238 pg_data_t *pgdat = NULL; in add_memory_resource() local
1267 pgdat = hotadd_new_pgdat(nid, start); in add_memory_resource()
1269 if (!pgdat) in add_memory_resource()
1300 rollback_node_hotadd(nid, pgdat); in add_memory_resource()
1570 struct pglist_data *pgdat = zone->zone_pgdat; in can_offline_normal() local
1575 present_pages += pgdat->node_zones[zt].present_pages; in can_offline_normal()
1582 present_pages += pgdat->node_zones[zt].present_pages; in can_offline_normal()
1627 struct pglist_data *pgdat = zone->zone_pgdat; in node_states_check_changes_offline() local
1651 present_pages += pgdat->node_zones[zt].present_pages; in node_states_check_changes_offline()
1672 present_pages += pgdat->node_zones[zt].present_pages; in node_states_check_changes_offline()
1693 present_pages += pgdat->node_zones[zt].present_pages; in node_states_check_changes_offline()
1924 static int check_cpu_on_node(pg_data_t *pgdat) in check_cpu_on_node() argument
1929 if (cpu_to_node(cpu) == pgdat->node_id) in check_cpu_on_node()
1940 static void unmap_cpu_on_node(pg_data_t *pgdat) in unmap_cpu_on_node() argument
1946 if (cpu_to_node(cpu) == pgdat->node_id) in unmap_cpu_on_node()
1951 static int check_and_unmap_cpu_on_node(pg_data_t *pgdat) in check_and_unmap_cpu_on_node() argument
1955 ret = check_cpu_on_node(pgdat); in check_and_unmap_cpu_on_node()
1964 unmap_cpu_on_node(pgdat); in check_and_unmap_cpu_on_node()
1978 pg_data_t *pgdat = NODE_DATA(nid); in try_offline_node() local
1979 unsigned long start_pfn = pgdat->node_start_pfn; in try_offline_node()
1980 unsigned long end_pfn = start_pfn + pgdat->node_spanned_pages; in try_offline_node()
2000 if (check_and_unmap_cpu_on_node(pgdat)) in try_offline_node()
2012 struct zone *zone = pgdat->node_zones + i; in try_offline_node()