Skip to contentSkip to conversation

x86: fix NUMA code for 32bit

PATCH New Jan Beulich 1 participant 1 message Sep 14, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86: fix NUMA code for 32bit

I don't know how significant this is (most of the NUMA node data seems unused at this point), but anyway: enable proper operation of NUMA emulation and the fake NUMA node in case there's no SRAT table on x86-32. This will at least make the "Faking node ..." message not print confusing information anymore.

xen/arch/x86/numa.c +9 -9
Index: 2007-08-08/xen/arch/x86/numa.c
===================================================================
@@ -139,15 +139,15 @@ void __init numa_init_array(void)
 static int numa_fake __initdata = 0;
 
 /* Numa emulation */
-static int numa_emulation(unsigned long start_pfn, unsigned long end_pfn)
+static int numa_emulation(u64 start_pfn, u64 end_pfn)
 {
  	int i;
  	struct node nodes[MAX_NUMNODES];
- 	unsigned long sz = ((end_pfn - start_pfn)<<PAGE_SHIFT) / numa_fake;
+ 	u64 sz = ((end_pfn - start_pfn)<<PAGE_SHIFT) / numa_fake;
 
  	/* Kludge needed for the hash function */
  	if (hweight64(sz) > 1) {
- 		unsigned long x = 1;
+ 		u64 x = 1;
  		while ((x << 1) < sz)
  			x <<= 1;
  		if (x < sz/2)
@@ -190,17 +190,17 @@ void __init numa_initmem_init(unsigned l
 #endif
 
 #ifdef CONFIG_ACPI_NUMA
-	if (!numa_off && !acpi_scan_nodes(start_pfn << PAGE_SHIFT,
-					  end_pfn << PAGE_SHIFT))
+	if (!numa_off && !acpi_scan_nodes((u64)start_pfn << PAGE_SHIFT,
+					  (u64)end_pfn << PAGE_SHIFT))
 		return;
 #endif
 
 	printk(KERN_INFO "%s\n",
 	       numa_off ? "NUMA turned off" : "No NUMA configuration found");
 
-	printk(KERN_INFO "Faking a node at %016lx-%016lx\n", 
-	       start_pfn << PAGE_SHIFT,
-	       end_pfn << PAGE_SHIFT); 
+	printk(KERN_INFO "Faking a node at %016"PRIx64"-%016"PRIx64"\n",
+	       (u64)start_pfn << PAGE_SHIFT,
+	       (u64)end_pfn << PAGE_SHIFT);
 	/* setup dummy node covering all memory */ 
 	memnode_shift = 63; 
 	memnodemap[0] = 0;
@@ -209,7 +209,7 @@ void __init numa_initmem_init(unsigned l
 	for (i = 0; i < NR_CPUS; i++)
 		numa_set_node(i, 0);
 	node_to_cpumask[0] = cpumask_of_cpu(0);
-	setup_node_bootmem(0, start_pfn << PAGE_SHIFT, end_pfn << PAGE_SHIFT);
+	setup_node_bootmem(0, (u64)start_pfn << PAGE_SHIFT, (u64)end_pfn << PAGE_SHIFT);
 }
 
 __cpuinit void numa_add_cpu(int cpu)