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()
643 static void shrink_pgdat_span(struct pglist_data *pgdat, in shrink_pgdat_span() argument
646 unsigned long pgdat_start_pfn = pgdat->node_start_pfn; in shrink_pgdat_span()
647 unsigned long p = pgdat_end_pfn(pgdat); /* pgdat_end_pfn namespace clash */ in shrink_pgdat_span()
651 int nid = pgdat->node_id; in shrink_pgdat_span()
663 pgdat->node_start_pfn = pfn; in shrink_pgdat_span()
664 pgdat->node_spanned_pages = pgdat_end_pfn - pfn; in shrink_pgdat_span()
676 pgdat->node_spanned_pages = pfn - pgdat_start_pfn + 1; in shrink_pgdat_span()
705 pgdat->node_start_pfn = 0; in shrink_pgdat_span()
706 pgdat->node_spanned_pages = 0; in shrink_pgdat_span()
711 struct pglist_data *pgdat = zone->zone_pgdat; in __remove_zone() local
716 zone_type = zone - pgdat->node_zones; in __remove_zone()
720 shrink_pgdat_span(pgdat, start_pfn, start_pfn + nr_pages); in __remove_zone()
1067 static void reset_node_present_pages(pg_data_t *pgdat) in reset_node_present_pages() argument
1071 for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) in reset_node_present_pages()
1074 pgdat->node_present_pages = 0; in reset_node_present_pages()
1080 struct pglist_data *pgdat; in hotadd_new_pgdat() local
1085 pgdat = NODE_DATA(nid); in hotadd_new_pgdat()
1086 if (!pgdat) { in hotadd_new_pgdat()
1087 pgdat = arch_alloc_nodedata(nid); in hotadd_new_pgdat()
1088 if (!pgdat) in hotadd_new_pgdat()
1091 arch_refresh_nodedata(nid, pgdat); in hotadd_new_pgdat()
1094 pgdat->nr_zones = 0; in hotadd_new_pgdat()
1095 pgdat->classzone_idx = 0; in hotadd_new_pgdat()
1108 build_all_zonelists(pgdat, NULL); in hotadd_new_pgdat()
1117 reset_node_managed_pages(pgdat); in hotadd_new_pgdat()
1124 reset_node_present_pages(pgdat); in hotadd_new_pgdat()
1126 return pgdat; in hotadd_new_pgdat()
1129 static void rollback_node_hotadd(int nid, pg_data_t *pgdat) in rollback_node_hotadd() argument
1132 arch_free_nodedata(pgdat); in rollback_node_hotadd()
1144 pg_data_t *pgdat; in try_online_node() local
1151 pgdat = hotadd_new_pgdat(nid, 0); in try_online_node()
1152 if (!pgdat) { in try_online_node()
1161 if (pgdat->node_zonelists->_zonerefs->zone == NULL) { in try_online_node()
1197 pg_data_t *pgdat = NODE_DATA(nid); in should_add_memory_movable() local
1198 struct zone *movable_zone = pgdat->node_zones + ZONE_MOVABLE; in should_add_memory_movable()
1220 pg_data_t *pgdat = NULL; in add_memory() local
1244 pgdat = hotadd_new_pgdat(nid, start); in add_memory()
1246 if (!pgdat) in add_memory()
1277 rollback_node_hotadd(nid, pgdat); in add_memory()
1524 struct pglist_data *pgdat = zone->zone_pgdat; in can_offline_normal() local
1529 present_pages += pgdat->node_zones[zt].present_pages; in can_offline_normal()
1536 present_pages += pgdat->node_zones[zt].present_pages; in can_offline_normal()
1581 struct pglist_data *pgdat = zone->zone_pgdat; in node_states_check_changes_offline() local
1605 present_pages += pgdat->node_zones[zt].present_pages; in node_states_check_changes_offline()
1626 present_pages += pgdat->node_zones[zt].present_pages; in node_states_check_changes_offline()
1647 present_pages += pgdat->node_zones[zt].present_pages; in node_states_check_changes_offline()
1878 static int check_cpu_on_node(pg_data_t *pgdat) in check_cpu_on_node() argument
1883 if (cpu_to_node(cpu) == pgdat->node_id) in check_cpu_on_node()
1894 static void unmap_cpu_on_node(pg_data_t *pgdat) in unmap_cpu_on_node() argument
1900 if (cpu_to_node(cpu) == pgdat->node_id) in unmap_cpu_on_node()
1905 static int check_and_unmap_cpu_on_node(pg_data_t *pgdat) in check_and_unmap_cpu_on_node() argument
1909 ret = check_cpu_on_node(pgdat); in check_and_unmap_cpu_on_node()
1918 unmap_cpu_on_node(pgdat); in check_and_unmap_cpu_on_node()
1932 pg_data_t *pgdat = NODE_DATA(nid); in try_offline_node() local
1933 unsigned long start_pfn = pgdat->node_start_pfn; in try_offline_node()
1934 unsigned long end_pfn = start_pfn + pgdat->node_spanned_pages; in try_offline_node()
1954 if (check_and_unmap_cpu_on_node(pgdat)) in try_offline_node()
1966 struct zone *zone = pgdat->node_zones + i; in try_offline_node()