@@ -179,7 +179,6 @@ void __init setup_node_bootmem(nodeid_t
start_pfn = start >> PAGE_SHIFT;
end_pfn = end >> PAGE_SHIFT;
- NODE_DATA(nodeid)->node_id = nodeid;
NODE_DATA(nodeid)->node_start_pfn = start_pfn;
NODE_DATA(nodeid)->node_spanned_pages = end_pfn - start_pfn;
@@ -386,16 +385,15 @@ static void dump_numa(unsigned char key)
for_each_online_node ( i )
{
- paddr_t pa = (paddr_t)(NODE_DATA(i)->node_start_pfn + 1)<< PAGE_SHIFT;
- printk("idx%d -> NODE%d start->%lu size->%lu free->%lu\n",
- i, NODE_DATA(i)->node_id,
- NODE_DATA(i)->node_start_pfn,
- NODE_DATA(i)->node_spanned_pages,
+ paddr_t pa = pfn_to_paddr(node_start_pfn(i) + 1);
+
+ printk("NODE%u start->%lu size->%lu free->%lu\n",
+ i, node_start_pfn(i), node_spanned_pages(i),
avail_node_heap_pages(i));
/* sanity check phys_to_nid() */
- printk("phys_to_nid(%"PRIpaddr") -> %d should be %d\n", pa,
- phys_to_nid(pa),
- NODE_DATA(i)->node_id);
+ if ( phys_to_nid(pa) != i )
+ printk("phys_to_nid(%"PRIpaddr") -> %d should be %u\n",
+ pa, phys_to_nid(pa), i);
}
j = cpumask_first(&cpu_online_map);
@@ -1386,21 +1386,21 @@ int memory_add(unsigned long spfn, unsig
goto destroy_directmap;
}
- old_node_start = NODE_DATA(node)->node_start_pfn;
- old_node_span = NODE_DATA(node)->node_spanned_pages;
+ old_node_start = node_start_pfn(node);
+ old_node_span = node_spanned_pages(node);
orig_online = node_online(node);
if ( !orig_online )
{
dprintk(XENLOG_WARNING, "node %x pxm %x is not online\n",node, pxm);
- NODE_DATA(node)->node_id = node;
NODE_DATA(node)->node_start_pfn = spfn;
NODE_DATA(node)->node_spanned_pages =
epfn - node_start_pfn(node);
node_set_online(node);
- }else
+ }
+ else
{
- if (NODE_DATA(node)->node_start_pfn > spfn)
+ if (node_start_pfn(node) > spfn)
NODE_DATA(node)->node_start_pfn = spfn;
if (node_end_pfn(node) < epfn)
NODE_DATA(node)->node_spanned_pages = epfn - node_start_pfn(node);
@@ -40,7 +40,6 @@ extern void srat_detect_node(int cpu);
extern void setup_node_bootmem(nodeid_t nodeid, u64 start, u64 end);
extern nodeid_t apicid_to_node[];
-#ifdef CONFIG_NUMA
extern void init_cpu_to_node(void);
static inline void clear_node_cpumask(int cpu)
@@ -56,7 +55,6 @@ extern u8 *memnodemap;
struct node_data {
unsigned long node_start_pfn;
unsigned long node_spanned_pages;
- nodeid_t node_id;
};
extern struct node_data node_data[];
@@ -78,11 +76,6 @@ static inline __attribute__((pure)) node
NODE_DATA(nid)->node_spanned_pages)
extern int valid_numa_range(u64 start, u64 end, nodeid_t node);
-#else
-#define init_cpu_to_node() do {} while (0)
-#define clear_node_cpumask(cpu) do {} while (0)
-#define valid_numa_range(start, end, node) 1
-#endif
void srat_parse_regions(u64 addr);
extern u8 __node_distance(nodeid_t a, nodeid_t b);