MAX_NUMNODES
cpumask_t cpus_on_node[MAX_NUMNODES];
cpumask_t phys_cpus_on_node[MAX_NUMNODES];
extern unsigned char __node_distances[MAX_NUMNODES][MAX_NUMNODES];
extern unsigned char __node_distances[MAX_NUMNODES][MAX_NUMNODES];
nasid_t g_nasidtable[MAX_NUMNODES]; /* NASID of each node */
#define MAXCPUS (MAX_NUMNODES * CPUS_PER_NODE)
for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, NULL) {
unsigned char __node_distances[MAX_NUMNODES][MAX_NUMNODES];
cpumask_t __node_cpumask[MAX_NUMNODES];
for (row = 0; row < MAX_NUMNODES; row++)
for (col = 0; col < MAX_NUMNODES; col++)
static DECLARE_BITMAP(hub_init_mask, MAX_NUMNODES);
for (row = 0; row < MAX_NUMNODES; row++)
for (col = 0; col < MAX_NUMNODES; col++)
struct node_data *__node_data[MAX_NUMNODES];
for (node = 0; node < MAX_NUMNODES; node++) {
unsigned char __node_distances[MAX_NUMNODES][MAX_NUMNODES];
if (node == MAX_NUMNODES)
for (i = 0; i < MAX_NUMNODES; i++) {
for_each_mem_pfn_range(i, MAX_NUMNODES, ®_spfn, ®_epfn, NULL) {
VMCOREINFO_LENGTH(node_data, MAX_NUMNODES);
for_each_mem_pfn_range(i, MAX_NUMNODES, &spfn, &epfn, NULL) {
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, NULL) {
cpumask_var_t node_to_cpumask_map[MAX_NUMNODES];
static int distance_lookup_table[MAX_NUMNODES][MAX_DISTANCE_REF_POINTS];
static int numa_distance_table[MAX_NUMNODES][MAX_NUMNODES] = {
[0 ... MAX_NUMNODES - 1] = { [0 ... MAX_NUMNODES - 1] = -1 }
static int numa_id_index_table[MAX_NUMNODES] = { [0 ... MAX_NUMNODES - 1] = NUMA_NO_NODE };
if (nr_node_ids == MAX_NUMNODES)
struct cbe_spu_info cbe_spu_info[MAX_NUMNODES];
for (i = 0; i < MAX_NUMNODES; i++) {
for (node = 0; node < MAX_NUMNODES; node++) {
if (node == MAX_NUMNODES) {
for (node = 0; node < MAX_NUMNODES; node++) {
for (n = 0; n < MAX_NUMNODES; n++, node++) {
node = (node < MAX_NUMNODES) ? node : 0;
for (n = 0; n < MAX_NUMNODES; n++, node++) {
node = (node < MAX_NUMNODES) ? node : 0;
for (n = 0; n < MAX_NUMNODES; n++, node++) {
node = (node < MAX_NUMNODES) ? node : 0;
for (node = 0; node < MAX_NUMNODES; node++)
for (node = 0; node < MAX_NUMNODES; node++) {
static cpumask_var_t node_recorded_ids_map[MAX_NUMNODES];
for (nid = 0; nid < MAX_NUMNODES; nid++)
for (nid = 0; nid < MAX_NUMNODES; nid++)
static struct resource mem_resources[MAX_NUMNODES];
VMCOREINFO_LENGTH(node_data, MAX_NUMNODES);
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, NULL)
BUG_ON(nid >= MAX_NUMNODES || nid <= 0);
if ((from >= MAX_NUMNODES) || (to >= MAX_NUMNODES)) {
for (i = 0; i < MAX_NUMNODES; i++) {
if (tnode == MAX_NUMNODES)
for (i = 0; i < MAX_NUMNODES; i++) {
for (j = 0; j < MAX_NUMNODES; j++) {
for (i = 0; i < MAX_NUMNODES; i++) {
for (j = 0; j < MAX_NUMNODES; j++)
static struct node_mem_mask node_masks[MAX_NUMNODES];
cpumask_t numa_cpumask_lookup_table[MAX_NUMNODES];
u64 numa_latency[MAX_NUMNODES][MAX_NUMNODES];
struct mem_vector immovable_mem[MAX_NUMNODES*2];
if (num >= MAX_NUMNODES*2) {
extern struct mem_vector immovable_mem[MAX_NUMNODES*2];
#define E820_MAX_ENTRIES (E820_MAX_ENTRIES_ZEROPAGE + 3*MAX_NUMNODES)
extern cpumask_var_t node_to_cpumask_map[MAX_NUMNODES];
VMCOREINFO_LENGTH(node_data, MAX_NUMNODES);
VMCOREINFO_LENGTH(node_data, MAX_NUMNODES);
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, NULL) {
if (nr_node_ids == MAX_NUMNODES)
return bitmap_weight(numa_phys_nodes_parsed.bits, MAX_NUMNODES);
cpumask_var_t node_to_cpumask_map[MAX_NUMNODES];
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {
bitmap_zero(p_nodes, MAX_NUMNODES);
for_each_set_bit(i, p_nodes, MAX_NUMNODES) {
static DECLARE_BITMAP(p_nodes, MAX_NUMNODES);
static DECLARE_BITMAP(p_nodes, MAX_NUMNODES);
static DECLARE_BITMAP(p_nodes, MAX_NUMNODES);
for (i = 0; i < MAX_NUMNODES; i++) {
for (i = 0; i < MAX_NUMNODES; i++) {
j < MAX_NUMNODES &&
if (WARN(j == MAX_NUMNODES,
for (i = 0; i < MAX_NUMNODES; i++)
for (i = 0; i < MAX_NUMNODES; i++) {
static int node_to_pxm_map[MAX_NUMNODES]
= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
for (i = 0, fake_pxm = -1; i < MAX_NUMNODES; i++) {
if (node >= MAX_NUMNODES)
static int node_to_pxm_map_copy[MAX_NUMNODES] __initdata
= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
if (nr_node_ids == MAX_NUMNODES)
if (nid < 0 || nid >= MAX_NUMNODES || numa_off)
cpumask_var_t node_to_cpumask_map[MAX_NUMNODES];
BUILD_BUG_ON(MAX_NUMNODES * 4 > PAGE_SIZE);
struct node *node_devices[MAX_NUMNODES];
if (next_node == MAX_NUMNODES)
if (node == NUMA_NO_NODE || node >= MAX_NUMNODES) {
#define GRU_MAX_BLADES MAX_NUMNODES
MAX_NUMNODES);
MAX_NUMNODES);
MAX_NUMNODES);
MAX_NUMNODES);
if (!r && nid < MAX_NUMNODES && node_possible(nid))
if (nid >= MAX_NUMNODES)
if (nid >= MAX_NUMNODES) {
if (node < 0 || node >= MAX_NUMNODES || !node_online(node) ||
if ((node < 0 && node != NUMA_NO_NODE) || node >= MAX_NUMNODES)
unsigned long node[MAX_NUMNODES];
#define MAX_PXM_DOMAINS MAX_NUMNODES
#if MAX_NUMNODES > 256
extern cpumask_var_t node_to_cpumask_map[MAX_NUMNODES];
#define NR_NODE_MEMBLKS (MAX_NUMNODES * 2)
VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES);
VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES);
extern struct list_head huge_boot_pages[MAX_NUMNODES];
struct list_head hugepage_freelists[MAX_NUMNODES];
unsigned int max_huge_pages_node[MAX_NUMNODES];
unsigned int nr_huge_pages_node[MAX_NUMNODES];
unsigned int free_huge_pages_node[MAX_NUMNODES];
unsigned int surplus_huge_pages_node[MAX_NUMNODES];
#if MAX_NUMNODES > 1
#define MAX_ZONES_PER_ZONELIST (MAX_NUMNODES * MAX_NR_ZONES)
return m ? MAX_NUMNODES : 0;
#define nodes_setall(dst) __nodes_setall(&(dst), MAX_NUMNODES)
#define nodes_clear(dst) __nodes_clear(&(dst), MAX_NUMNODES)
__nodes_and(&(dst), &(src1), &(src2), MAX_NUMNODES)
__nodes_or(&(dst), &(src1), &(src2), MAX_NUMNODES)
__nodes_xor(&(dst), &(src1), &(src2), MAX_NUMNODES)
__nodes_andnot(&(dst), &(src1), &(src2), MAX_NUMNODES)
#define nodes_copy(dst, src) __nodes_copy(&(dst), &(src), MAX_NUMNODES)
__nodes_complement(&(dst), &(src), MAX_NUMNODES)
__nodes_equal(&(src1), &(src2), MAX_NUMNODES)
__nodes_intersects(&(src1), &(src2), MAX_NUMNODES)
__nodes_subset(&(src1), &(src2), MAX_NUMNODES)
#define nodes_empty(src) __nodes_empty(&(src), MAX_NUMNODES)
#define nodes_full(nodemask) __nodes_full(&(nodemask), MAX_NUMNODES)
#define nodes_weight(nodemask) __nodes_weight(&(nodemask), MAX_NUMNODES)
return min(MAX_NUMNODES, find_first_bit(srcp->bits, MAX_NUMNODES));
return min(MAX_NUMNODES, find_next_bit(srcp->bits, MAX_NUMNODES, n+1));
if (ret == MAX_NUMNODES)
return min(MAX_NUMNODES, find_first_zero_bit(maskp->bits, MAX_NUMNODES));
#define NODE_MASK_LAST_WORD BITMAP_LAST_WORD_MASK(MAX_NUMNODES)
#if MAX_NUMNODES <= BITS_PER_LONG
[BITS_TO_LONGS(MAX_NUMNODES)-1] = NODE_MASK_LAST_WORD \
[0 ... BITS_TO_LONGS(MAX_NUMNODES)-2] = ~0UL, \
[BITS_TO_LONGS(MAX_NUMNODES)-1] = NODE_MASK_LAST_WORD \
[0 ... BITS_TO_LONGS(MAX_NUMNODES)-1] = 0UL \
__nodemask_parse_user((ubuf), (ulen), &(dst), MAX_NUMNODES)
#define nodelist_parse(buf, dst) __nodelist_parse((buf), &(dst), MAX_NUMNODES)
__node_remap((oldbit), &(old), &(new), MAX_NUMNODES)
__nodes_remap(&(dst), &(src), &(old), &(new), MAX_NUMNODES)
__nodes_onto(&(dst), &(orig), &(relmap), MAX_NUMNODES)
__nodes_fold(&(dst), &(orig), sz, MAX_NUMNODES)
#if MAX_NUMNODES > 1
(node) < MAX_NUMNODES; \
#if MAX_NUMNODES > 1
#define next_online_node(nid) (MAX_NUMNODES)
#define next_memory_node(nid) (MAX_NUMNODES)
#if defined(CONFIG_NUMA) && (MAX_NUMNODES > 1)
int node = find_random_bit(maskp->bits, MAX_NUMNODES);
return node < MAX_NUMNODES ? node : NUMA_NO_NODE;
typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t;
return nid >= 0 && nid < MAX_NUMNODES;
extern int emu_nid_to_phys[MAX_NUMNODES];
#define NR_NODE_MEMBLKS (MAX_NUMNODES * 2)
(node) < MAX_NUMNODES; \
__array( unsigned long, mem_allowed, BITS_TO_LONGS(MAX_NUMNODES))
BITS_TO_LONGS(MAX_NUMNODES) * sizeof(long));
MAX_NUMNODES, __entry->mem_allowed)
.max_write_len = (100U + 6 * MAX_NUMNODES),
.max_write_len = (100U + 6 * MAX_NUMNODES),
static struct cma *dma_contiguous_numa_area[MAX_NUMNODES];
static phys_addr_t numa_cma_size[MAX_NUMNODES] __initdata;
static struct cma *dma_contiguous_pernuma_area[MAX_NUMNODES];
if (tmp >= MAX_NUMNODES)
nid = array_index_nospec(tmp, MAX_NUMNODES);
(map->bparam.node < 0 || map->bparam.node >= MAX_NUMNODES ||
((unsigned int)node >= MAX_NUMNODES || !node_possible(node)))
struct futex_hash_bucket *queues[MAX_NUMNODES];
if (node < 0 || node >= MAX_NUMNODES || !node_online(node))
if (target_nid < 0 || target_nid >= MAX_NUMNODES ||
for (i = 0; i < MAX_NUMNODES; ++i)
if (tmp >= MAX_NUMNODES || !node_online(tmp))
node = array_index_nospec(tmp, MAX_NUMNODES);
for (i = 0; i < MAX_NUMNODES; i++) {
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {
for (i = 0; i < MAX_NUMNODES; i++)
__initdata struct list_head huge_boot_pages[MAX_NUMNODES];
static unsigned int default_hugepages_in_node[MAX_NUMNODES] __initdata;
if (tmp >= MAX_NUMNODES)
nid = array_index_nospec(tmp, MAX_NUMNODES);
static struct cma *hugetlb_cma[MAX_NUMNODES] __ro_after_init;
for (nid = 0; nid < MAX_NUMNODES; nid++) {
static unsigned long hugetlb_cma_size_in_node[MAX_NUMNODES] __initdata;
VM_BUG_ON(nid >= MAX_NUMNODES);
static struct node_hstate node_hstates[MAX_NUMNODES];
u32 node_load[MAX_NUMNODES];
for (i = 0; i < MAX_NUMNODES; i++) {
for (nid = 0; nid < MAX_NUMNODES; nid++)
for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, NULL) {
memblock_set_region_node(&type->regions[0], MAX_NUMNODES);
return memblock_add_range(&memblock.memory, base, size, MAX_NUMNODES, 0);
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {
return memblock_add_range(&physmem, base, size, MAX_NUMNODES, 0);
struct mem_cgroup_tree_per_node *rb_tree_per_node[MAX_NUMNODES];
int nid = MAX_NUMNODES;
if (unlikely(nid < 0 || nid >= MAX_NUMNODES)) {
static struct node_memory_type_map node_memory_types[MAX_NUMNODES];
current->il_prev = MAX_NUMNODES-1;
static struct mempolicy preferred_node_policy[MAX_NUMNODES];
while (maxnode > MAX_NUMNODES) {
if (maxnode - bits >= MAX_NUMNODES) {
maxnode = MAX_NUMNODES;
t &= ~((1UL << (MAX_NUMNODES % BITS_PER_LONG)) - 1);
if (home_node >= MAX_NUMNODES || !node_online(home_node))
if (node == MAX_NUMNODES)
if (nid < MAX_NUMNODES)
int resume_node = MAX_NUMNODES - 1;
int dist, n, min_dist = INT_MAX, min_node = MAX_NUMNODES;
if (node < 0 || node >= MAX_NUMNODES)
return __absent_pages_in_range(MAX_NUMNODES, start_pfn, end_pfn);
#if MAX_NUMNODES > 1
highest = find_last_bit(node_possible_map.bits, MAX_NUMNODES);
for (i = 0; i < MAX_NUMNODES; i++) {
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {
for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, &nid) {
static unsigned long zone_movable_pfn[MAX_NUMNODES] __initdata;
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {
if (nid == MAX_NUMNODES)
struct pglist_data *node_data[MAX_NUMNODES];
nr_nodes, MAX_NUMNODES);
nr_nodes = MAX_NUMNODES;
int emu_nid_to_phys[MAX_NUMNODES];
nr_nodes = MAX_NUMNODES;
ret = emu_setup_memblk(ei, pi, nid++ % MAX_NUMNODES,
for (i = 0; i < MAX_NUMNODES; i++)
if (nr_nodes > MAX_NUMNODES) {
if (start > end || nid < 0 || nid >= MAX_NUMNODES) {
next_memory_node(pgdat->node_id) < MAX_NUMNODES)
#if MAX_NUMNODES > 1
unsigned int nr_node_ids __read_mostly = MAX_NUMNODES;
static int node_load[MAX_NUMNODES];
val *= MAX_NUMNODES;
static int node_order[MAX_NUMNODES];
struct kmem_cache_node *node[MAX_NUMNODES];
for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, &nid)
#if MAX_NUMNODES <= 256
if (nid == MAX_NUMNODES) {
if (nid < 0 || nid >= MAX_NUMNODES || !node_state(nid, N_MEMORY))
return nid >= 0 && nid < MAX_NUMNODES;