Lines Matching defs:nid
370 int __ref __add_pages(int nid, unsigned long pfn, unsigned long nr_pages,
404 err = sparse_add_section(nid, pfn, cur_nr_pages, altmap,
415 static unsigned long find_smallest_section_pfn(int nid, struct zone *zone,
423 if (unlikely(pfn_to_nid(start_pfn) != nid))
436 static unsigned long find_biggest_section_pfn(int nid, struct zone *zone,
448 if (unlikely(pfn_to_nid(pfn) != nid))
464 int nid = zone_to_nid(zone);
473 pfn = find_smallest_section_pfn(nid, zone, end_pfn,
489 pfn = find_biggest_section_pfn(nid, zone, zone->zone_start_pfn,
685 int nid = zone_to_nid(zone);
690 if (!node_state(nid, N_MEMORY))
691 arg->status_change_nid = nid;
692 if (zone_idx(zone) <= ZONE_NORMAL && !node_state(nid, N_NORMAL_MEMORY))
693 arg->status_change_nid_normal = nid;
755 int nid = pgdat->node_id;
783 memmap_init_range(nr_pages, nid, zone_idx(zone), start_pfn, 0,
843 static bool auto_movable_can_online_movable(int nid, struct memory_group *group,
849 pg_data_t *pgdat = NODE_DATA(nid);
854 if (nid == NUMA_NO_NODE) {
874 walk_dynamic_memory_groups(nid, auto_movable_stats_account_group,
897 static struct zone *default_kernel_zone_for_pfn(int nid, unsigned long start_pfn,
900 struct pglist_data *pgdat = NODE_DATA(nid);
963 static struct zone *auto_movable_zone_for_pfn(int nid,
1015 !auto_movable_can_online_movable(nid, group, nr_pages))
1019 return &NODE_DATA(nid)->node_zones[ZONE_MOVABLE];
1021 return default_kernel_zone_for_pfn(nid, pfn, nr_pages);
1024 static inline struct zone *default_zone_for_pfn(int nid, unsigned long start_pfn,
1027 struct zone *kernel_zone = default_kernel_zone_for_pfn(nid, start_pfn,
1029 struct zone *movable_zone = &NODE_DATA(nid)->node_zones[ZONE_MOVABLE];
1048 struct zone *zone_for_pfn_range(int online_type, int nid,
1053 return default_kernel_zone_for_pfn(nid, start_pfn, nr_pages);
1056 return &NODE_DATA(nid)->node_zones[ZONE_MOVABLE];
1059 return auto_movable_zone_for_pfn(nid, group, start_pfn, nr_pages);
1061 return default_zone_for_pfn(nid, start_pfn, nr_pages);
1143 const int nid = zone_to_nid(zone);
1192 node_states_set_node(nid, &arg);
1210 kswapd_run(nid);
1211 kcompactd_run(nid);
1213 zswapd_run(nid);
1231 static pg_data_t __ref *hotadd_init_pgdat(int nid)
1241 pgdat = NODE_DATA(nid);
1257 * @nid: the node ID
1266 static int __try_online_node(int nid, bool set_node_online)
1271 if (node_online(nid))
1274 pgdat = hotadd_init_pgdat(nid);
1276 pr_err("Cannot online node %d due to NULL pgdat\n", nid);
1282 node_set_online(nid);
1283 ret = register_one_node(nid);
1293 int try_online_node(int nid)
1298 ret = __try_online_node(nid, true);
1395 int __ref add_memory_resource(int nid, struct resource *res, mhp_t mhp_flags)
1416 group = memory_group_find_by_id(nid);
1419 nid = group->nid;
1422 if (!node_possible(nid)) {
1423 WARN(1, "node %d was absent from the node_possible_map\n", nid);
1432 ret = memblock_add_node(start, size, nid, memblock_flags);
1437 ret = __try_online_node(nid, false);
1460 ret = arch_add_memory(nid, start, size, ¶ms);
1477 node_set_online(nid);
1478 ret = __register_one_node(nid);
1482 register_memory_blocks_under_node(nid, PFN_DOWN(start),
1516 int __ref __add_memory(int nid, u64 start, u64 size, mhp_t mhp_flags)
1525 ret = add_memory_resource(nid, res, mhp_flags);
1531 int add_memory(int nid, u64 start, u64 size, mhp_t mhp_flags)
1536 rc = __add_memory(nid, start, size, mhp_flags);
1564 int add_memory_driver_managed(int nid, u64 start, u64 size,
1583 rc = add_memory_resource(nid, res, mhp_flags);
1781 * we can use the nid of the first page to all the others.
1783 mtc.nid = page_to_nid(list_first_entry(&source, struct page, lru));
1790 node_clear(mtc.nid, nmask);
1792 node_set(mtc.nid, nmask);
2059 int *nid = arg;
2061 *nid = mem->nid;
2089 static int check_cpu_on_node(int nid)
2094 if (cpu_to_node(cpu) == nid)
2107 int nid = *(int *)arg;
2110 * If a memory block belongs to multiple nodes, the stored nid is not
2114 return mem->nid == nid ? -EEXIST : 0;
2119 * @nid: the node ID
2126 void try_offline_node(int nid)
2135 if (node_spanned_pages(nid))
2143 rc = for_each_memory_block(&nid, check_no_memblock_for_node_cb);
2147 if (check_cpu_on_node(nid))
2154 node_set_offline(nid);
2155 unregister_one_node(nid);
2162 int rc = 0, nid = NUMA_NO_NODE;
2172 * While at it, determine the nid. Note that if we'd have mixed nodes,
2176 rc = walk_memory_blocks(start, size, &nid, check_memblock_offlined_cb);
2228 if (nid != NUMA_NO_NODE)
2229 try_offline_node(nid);