WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] x86: fix NUMA code for 32bit

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] x86: fix NUMA code for 32bit
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Fri, 14 Sep 2007 10:06:57 +0100
Delivery-date: Fri, 14 Sep 2007 02:06:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Index: 2007-08-08/xen/arch/x86/numa.c
===================================================================
--- 2007-08-08.orig/xen/arch/x86/numa.c 2006-12-15 08:53:48.000000000 +0100
+++ 2007-08-08/xen/arch/x86/numa.c      2007-09-14 11:01:01.000000000 +0200
@@ -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)




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] x86: fix NUMA code for 32bit, Jan Beulich <=