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-ppc-devel

[XenPPC] cpu_possible_map

To: Amos Waterland <apw@xxxxxxxxxx>
Subject: [XenPPC] cpu_possible_map
From: Hollis Blanchard <hollisb@xxxxxxxxxx>
Date: Tue, 29 Aug 2006 17:55:56 -0500
Cc: xen-ppc-devel <xen-ppc-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 29 Aug 2006 15:55:31 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ppc-devel-request@lists.xensource.com?subject=help>
List-id: Xen PPC development <xen-ppc-devel.lists.xensource.com>
List-post: <mailto:xen-ppc-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: IBM Linux Technology Center
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
This hasn't hit us in xenppc-unstable because we're downlevel, but
here's what I committed in the merge tree:

diff -r 030a041bbe90 xen/arch/powerpc/boot_of.c
--- a/xen/arch/powerpc/boot_of.c        Tue Aug 29 06:53:58 2006 -0400
+++ b/xen/arch/powerpc/boot_of.c        Tue Aug 29 17:45:56 2006 -0500
@@ -993,6 +993,7 @@ static int __init boot_of_cpus(void)
     /* We want a continuous logical cpu number space.  */
     cpu_set(0, cpu_present_map);
     cpu_set(0, cpu_online_map);
+    cpu_set(0, cpu_possible_map);
 
     /* Spin up all CPUS, even if there are more than NR_CPUS, because
      * Open Firmware has them spinning on cache lines which will
@@ -1039,8 +1040,10 @@ static int __init boot_of_cpus(void)
         } while (pong == ping);
         of_printf("pong = 0x%x\n", pong);
 
-        if (pong != ping)
+        if (pong != ping) {
             cpu_set(logical, cpu_present_map);
+            cpu_set(logical, cpu_possible_map);
+        }
 
         cpu = of_getpeer(cpu);
     }
diff -r 030a041bbe90 xen/arch/powerpc/setup.c
--- a/xen/arch/powerpc/setup.c  Tue Aug 29 06:53:58 2006 -0400
+++ b/xen/arch/powerpc/setup.c  Tue Aug 29 17:45:37 2006 -0500
@@ -74,6 +74,7 @@ cpumask_t cpu_sibling_map[NR_CPUS] __rea
 cpumask_t cpu_sibling_map[NR_CPUS] __read_mostly;
 cpumask_t cpu_online_map; /* missing ifdef in schedule.c */
 cpumask_t cpu_present_map;
+cpumask_t cpu_possible_map;
 
 /* XXX get this from ISA node in device tree */
 ulong isa_io_base;
@@ -254,6 +255,7 @@ static int kick_secondary_cpus(int maxcp
             break;
         init_parea(cpuid);
         cpu_set(cpuid, cpu_online_map);
+        cpu_set(cpuid, cpu_possible_map);
     }
 
     return 0;

I'm actually not sure why we need to set secondary cpus in 'possible' in
both kick_secondary_cpus() and boot_of_cpus(), but this gets me booting.

-- 
Hollis Blanchard
IBM Linux Technology Center


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

<Prev in Thread] Current Thread [Next in Thread>
  • [XenPPC] cpu_possible_map, Hollis Blanchard <=