Lines Matching refs:nid
389 int __add_pages(int nid, unsigned long pfn, unsigned long nr_pages, in __add_pages() argument
423 err = sparse_add_section(nid, pfn, cur_nr_pages, altmap, in __add_pages()
434 static unsigned long find_smallest_section_pfn(int nid, struct zone *zone, in find_smallest_section_pfn() argument
442 if (unlikely(pfn_to_nid(start_pfn) != nid)) in find_smallest_section_pfn()
455 static unsigned long find_biggest_section_pfn(int nid, struct zone *zone, in find_biggest_section_pfn() argument
467 if (unlikely(pfn_to_nid(pfn) != nid)) in find_biggest_section_pfn()
483 int nid = zone_to_nid(zone); in shrink_zone_span() local
492 pfn = find_smallest_section_pfn(nid, zone, end_pfn, in shrink_zone_span()
508 pfn = find_biggest_section_pfn(nid, zone, zone->zone_start_pfn, in shrink_zone_span()
754 int nid = pgdat->node_id; in move_pfn_range_to_zone() local
782 memmap_init_range(nr_pages, nid, zone_idx(zone), start_pfn, 0, in move_pfn_range_to_zone()
843 static bool auto_movable_can_online_movable(int nid, struct memory_group *group, in auto_movable_can_online_movable() argument
853 if (nid == NUMA_NO_NODE) { in auto_movable_can_online_movable()
859 pg_data_t *pgdat = NODE_DATA(nid); in auto_movable_can_online_movable()
875 walk_dynamic_memory_groups(nid, auto_movable_stats_account_group, in auto_movable_can_online_movable()
898 static struct zone *default_kernel_zone_for_pfn(int nid, unsigned long start_pfn, in default_kernel_zone_for_pfn() argument
901 struct pglist_data *pgdat = NODE_DATA(nid); in default_kernel_zone_for_pfn()
964 static struct zone *auto_movable_zone_for_pfn(int nid, in auto_movable_zone_for_pfn() argument
1016 !auto_movable_can_online_movable(nid, group, nr_pages)) in auto_movable_zone_for_pfn()
1020 return &NODE_DATA(nid)->node_zones[ZONE_MOVABLE]; in auto_movable_zone_for_pfn()
1022 return default_kernel_zone_for_pfn(nid, pfn, nr_pages); in auto_movable_zone_for_pfn()
1025 static inline struct zone *default_zone_for_pfn(int nid, unsigned long start_pfn, in default_zone_for_pfn() argument
1028 struct zone *kernel_zone = default_kernel_zone_for_pfn(nid, start_pfn, in default_zone_for_pfn()
1030 struct zone *movable_zone = &NODE_DATA(nid)->node_zones[ZONE_MOVABLE]; in default_zone_for_pfn()
1049 struct zone *zone_for_pfn_range(int online_type, int nid, in zone_for_pfn_range() argument
1054 return default_kernel_zone_for_pfn(nid, start_pfn, nr_pages); in zone_for_pfn_range()
1057 return &NODE_DATA(nid)->node_zones[ZONE_MOVABLE]; in zone_for_pfn_range()
1060 return auto_movable_zone_for_pfn(nid, group, start_pfn, nr_pages); in zone_for_pfn_range()
1062 return default_zone_for_pfn(nid, start_pfn, nr_pages); in zone_for_pfn_range()
1161 .nid = NUMA_NO_NODE, in online_pages()
1163 const int nid = zone_to_nid(zone); in online_pages() local
1184 if (!node_state(nid, N_MEMORY)) { in online_pages()
1186 node_arg.nid = nid; in online_pages()
1219 if (node_arg.nid >= 0) in online_pages()
1220 node_set_state(nid, N_MEMORY); in online_pages()
1238 kswapd_run(nid); in online_pages()
1239 kcompactd_run(nid); in online_pages()
1241 if (node_arg.nid >= 0) in online_pages()
1255 if (node_arg.nid != NUMA_NO_NODE) in online_pages()
1262 static pg_data_t *hotadd_init_pgdat(int nid) in hotadd_init_pgdat() argument
1272 pgdat = NODE_DATA(nid); in hotadd_init_pgdat()
1297 static int __try_online_node(int nid, bool set_node_online) in __try_online_node() argument
1302 if (node_online(nid)) in __try_online_node()
1305 pgdat = hotadd_init_pgdat(nid); in __try_online_node()
1307 pr_err("Cannot online node %d due to NULL pgdat\n", nid); in __try_online_node()
1313 node_set_online(nid); in __try_online_node()
1314 ret = register_one_node(nid); in __try_online_node()
1324 int try_online_node(int nid) in try_online_node() argument
1329 ret = __try_online_node(nid, true); in try_online_node()
1446 static int create_altmaps_and_memory_blocks(int nid, struct memory_group *group, in create_altmaps_and_memory_blocks() argument
1473 ret = arch_add_memory(nid, cur_start, memblock_size, ¶ms); in create_altmaps_and_memory_blocks()
1480 ret = create_memory_block_devices(cur_start, memblock_size, nid, in create_altmaps_and_memory_blocks()
1502 int add_memory_resource(int nid, struct resource *res, mhp_t mhp_flags) in add_memory_resource() argument
1519 group = memory_group_find_by_id(nid); in add_memory_resource()
1522 nid = group->nid; in add_memory_resource()
1525 if (!node_possible(nid)) { in add_memory_resource()
1526 WARN(1, "node %d was absent from the node_possible_map\n", nid); in add_memory_resource()
1535 ret = memblock_add_node(start, size, nid, memblock_flags); in add_memory_resource()
1540 ret = __try_online_node(nid, false); in add_memory_resource()
1544 node_set_online(nid); in add_memory_resource()
1545 ret = register_one_node(nid); in add_memory_resource()
1547 node_set_offline(nid); in add_memory_resource()
1558 ret = create_altmaps_and_memory_blocks(nid, group, start, size, mhp_flags); in add_memory_resource()
1562 ret = arch_add_memory(nid, start, size, ¶ms); in add_memory_resource()
1567 ret = create_memory_block_devices(start, size, nid, NULL, group); in add_memory_resource()
1574 register_memory_blocks_under_node_hotplug(nid, PFN_DOWN(start), in add_memory_resource()
1598 node_set_offline(nid); in add_memory_resource()
1599 unregister_one_node(nid); in add_memory_resource()
1610 int __add_memory(int nid, u64 start, u64 size, mhp_t mhp_flags) in __add_memory() argument
1619 ret = add_memory_resource(nid, res, mhp_flags); in __add_memory()
1625 int add_memory(int nid, u64 start, u64 size, mhp_t mhp_flags) in add_memory() argument
1630 rc = __add_memory(nid, start, size, mhp_flags); in add_memory()
1658 int add_memory_driver_managed(int nid, u64 start, u64 size, in add_memory_driver_managed() argument
1677 rc = add_memory_resource(nid, res, mhp_flags); in add_memory_driver_managed()
1860 mtc.nid = folio_nid(list_first_entry(&source, struct folio, lru)); in do_migrate_range()
1867 node_clear(mtc.nid, nmask); in do_migrate_range()
1869 node_set(mtc.nid, nmask); in do_migrate_range()
1917 .nid = NUMA_NO_NODE, in offline_pages()
1983 node_arg.nid = node; in offline_pages()
2073 if (node_arg.nid >= 0) in offline_pages()
2080 if (node_arg.nid >= 0) { in offline_pages()
2097 if (node_arg.nid != NUMA_NO_NODE) in offline_pages()
2112 int *nid = arg; in check_memblock_offlined_cb() local
2114 *nid = mem->nid; in check_memblock_offlined_cb()
2138 static int check_cpu_on_node(int nid) in check_cpu_on_node() argument
2143 if (cpu_to_node(cpu) == nid) in check_cpu_on_node()
2156 int nid = *(int *)arg; in check_no_memblock_for_node_cb() local
2163 return mem->nid == nid ? -EEXIST : 0; in check_no_memblock_for_node_cb()
2175 void try_offline_node(int nid) in try_offline_node() argument
2184 if (node_spanned_pages(nid)) in try_offline_node()
2192 rc = for_each_memory_block(&nid, check_no_memblock_for_node_cb); in try_offline_node()
2196 if (check_cpu_on_node(nid)) in try_offline_node()
2203 node_set_offline(nid); in try_offline_node()
2204 unregister_one_node(nid); in try_offline_node()
2230 int rc, nid = NUMA_NO_NODE; in try_remove_memory() local
2243 rc = walk_memory_blocks(start, size, &nid, check_memblock_offlined_cb); in try_remove_memory()
2274 if (nid != NUMA_NO_NODE) in try_remove_memory()
2275 try_offline_node(nid); in try_remove_memory()