[Barrelfish-users] {Disarmed} Re: Problems when booting Barrelfish on SCC

Shi Jinghao (史经浩) jhshi at cs.hku.hk
Thu May 3 10:17:26 CEST 2012


Hi Zeus,

Thanks for your message. I re-cloned the revision release2011-09-02 and do
a clean build and boot. Quite strange, it works this time. The output is:

My APIC ID: 0
Barrelfish CPU driver starting on scc core 0
init: invoked as: init 2097152
Spawning memory server (scc/sbin/mem_serv)...
Spawning monitor (scc/sbin/monitor)...
starting monitor as 'scc/sbin/monitor 327680 '
monitor: invoked as: scc/sbin/monitor 327680
RAM allocator initialised, 1612 MB (of 1628 MB) available
Spawning chips on core 0
Spawning /scc/sbin/ramfsd on core 0
Spawning /scc/sbin/spawnd on core 0
Spawning /scc/sbin/startd on core 0
chips: client waiting for ramfs
ramfsd.0: pre-populating from boot image...
chips: client waiting for ramfs
ramfsd.0: ready
chips: notifying client about ramfs
chips: notifying client about ramfs
kernel 0: Allocating RAM at 0x80000000 uninitialized
kernel 0: Allocating RAM at 0x80010000 uninitialized
spawnd.0: coreid 1 is arch id 1
spawnd.0: coreid 2 is arch id 2
spawnd.0: coreid 3 is arch id 3
chips: client waiting for all_spawnds_up
Monitor 0: booting scc core 1 as '/scc/sbin/cpu'
kernel 0: Allocating RAM at 0x80020000 uninitialized
Monitor 0: booting scc core 2 as '/scc/sbin/cpu'
kernel 0: Allocating RAM at 0x80021000 uninitialized
chips: client waiting for all_spawnds_up
Monitor 0: booting scc core 3 as '/scc/sbin/cpu'
kernel 0: Allocating RAM at 0x80022000 uninitialized
chips: client waiting for all_spawnds_up
all 4 monitors up
chips: client waiting for spawn.3.ready
chips: notifying client about spawn.3.ready
chips: client waiting for all_spawnds_up
chips: notifying client about all_spawnds_up
chips: notifying client about all_spawnds_up
chips: notifying client about all_spawnds_up
chips: notifying client about all_spawnds_up
No bootscript

I inspected the code but found no big difference in the booting part. For
example, the bsp variable in /kernel/arch/x86/apic.c may still not set
correctly.

Do you have any idea about why this revision would work but tip won't?

Thanks,
Jinghao

On Thu, May 3, 2012 at 1:06 AM, Zeus Gómez Marmolejo <zeus.gomez at bsc.es>wrote:

> Hi,
>
> I can confirm I get the same error "rck_get_coreid() == 0" on the tip. But
> cloning release2011-09-02 is booting fine here. Even the 48 cores. I get
> the following messages:
>
> all 48 monitors up
> ...
> chips: notifying client about spawn.47.ready
> chips: client waiting for all_spawnds_up
> chips: notifying client about all_spawnds_up
>
> BTW, it takes quite a while to boot the 48 cores...
>
>
> zeus.
>
> 2012/4/30 Shi Jinghao (史经浩) <jhshi at cs.hku.hk>
>
> Hi, Stefan.
>>
>> Thanks for your concern about this.
>>
>> I applied the patch in a clean revision release2011-09-02. Basically, I
>> think this patch did the same thing that I described earlier: use
>> rck_get_coreid to correctly set bsp (or apic_bsp in later revision). But
>> just as you mentioned, more bugs coming after that, especially kernel 1
>> still found the core_data is corrupted. So the kernel still panic.
>>
>> You said that a clean revision of release2011-09-02 can successfully boot
>> up on SCC, but I fail to see any reason for that. I reviewed the code and
>> find that bsp is not correctly set in that revision. So what's you idea
>> about why release2011-09-02 can boot but later releases (e.g. tip) can not?
>> What's the difference exactly, especially in the startup part?
>>
>> BTW, I just use the bootscc.sh script shipped with the source to boot BF
>> on SCC.
>>
>> Thanks,
>> Jinghao
>>
>> On Sat, Apr 28, 2012 at 10:41 PM, Stefan Kästle <
>> stefan.kaestle at inf.ethz.ch> wrote:
>>
>>>  I used the one shipped with the release:
>>>
>>> timeout 0
>>>
>>>
>>> # spawnd is used to control which cpus are booted
>>> #
>>>
>>> # "spawnd boot" will use the skb and pci to figure out and
>>> #  boot all cores in the machine
>>> #
>>>
>>> # "spawnd boot bootscc=1-6" will not use the skb and
>>> # boot the list of cores passed as argument.
>>> # The hardware id of the cores to boot should be specified.
>>> # This list may not include the bsp core id.
>>>
>>> title   Barrelfish
>>> root    (nd)
>>> kernel  /scc/sbin/cpu loglevel=4
>>> module  /scc/sbin/cpu
>>> module  /scc/sbin/init
>>>
>>>
>>> # Domains spawned by init
>>> module  /scc/sbin/mem_serv
>>> module  /scc/sbin/monitor
>>>
>>> module  /scc/sbin/chips boot
>>> module  /scc/sbin/ramfsd boot
>>> module  /scc/sbin/spawnd boot bootscc=1,2,3
>>> module  /scc/sbin/startd boot
>>>
>>> # modules needed to start the networking
>>> # module  /scc/sbin/eMAC core=0
>>>
>>> # module  /scc/sbin/netd core=0 cardname=eMAC2_0
>>> # module  /scc/sbin/eMAC core=1
>>>
>>> # module  /scc/sbin/netd core=1 cardname=eMAC2_1
>>>
>>> # Test for network throughput
>>> # module  /scc/sbin/netthroughput core=1 /nfs nfs://10.110.4.41/shared/nfs/pravin/testfile.txt
>>>
>>> # For webserver
>>>
>>> # module  /scc/sbin/webserver core=1 eMAC2_1 10.110.4.41
>>> /shared/pravin/sw
>>>
>>>
>>> # RCK memory map
>>>
>>> # Everything up til VGA is private RAM (maybe we want to throw it away)
>>> mmap    map     0x0             0xa000          2
>>> # Everything after VGA is private RAM (we also live in this area)
>>> mmap    map     0xe800          0x26ff1800      1
>>> # Shared RAM (over all MCs) in the middle of address space
>>> #mmap   map     0x80000000      0x4000000       1
>>> mmap    map     0x80000000      0x40000000      1
>>> # At the very end we have some platform memory (bootup EEPROM)
>>> mmap    map     0xfffc0000      0x40000         2
>>>
>>> The following patch fixes your issue. Can you try if this work for your
>>> tree? I only tested this on the tip (where the problem was fixed, but the
>>> system did still not come up). How to you train and boot the SCC?
>>>
>>> diff -r b8f91be7c881 kernel/arch/x86/startup_x86.c
>>> --- a/kernel/arch/x86/startup_x86.c     Fri Mar 02 09:46:13 2012 +0100
>>> +++ b/kernel/arch/x86/startup_x86.c     Mon Apr 23 21:46:11 2012 +0200
>>> @@ -302,7 +302,9 @@
>>>          /* spawn init */
>>>          init_dcb = spawn_bsp_init(BSP_INIT_MODULE_PATH, bsp_alloc_phys);
>>>      } else {
>>> +#if !defined(__scc__)
>>>          my_core_id = core_data->dst_core_id;
>>> +#endif
>>>
>>>
>>>          /* Initialize the allocator */
>>>          app_alloc_phys_start = core_data->memory_base_start;diff -r
>>> b8f91be7c881 kernel/arch/x86_32/init.c
>>> --- a/kernel/arch/x86_32/init.c Fri Mar 02 09:46:13 2012 +0100
>>> +++ b/kernel/arch/x86_32/init.c Mon Apr 23 21:46:11 2012 +0200
>>> @@ -573,7 +573,8 @@
>>>
>>>      // XXX: Set core ID and fake APIC ID to be the tile's core ID
>>>      my_core_id = apic_id = rck_get_coreid();
>>> -    printf("My APIC ID: %d\n", apic_id);
>>> +    apic_bsp = (my_core_id == 0);
>>> +    printf("My APIC ID: %d bsp=%d\n", apic_id, apic_bsp);
>>>  #endif
>>>
>>>      // do not remove/change this printf: needed by regression harness
>>>
>>>
>>> On 04/28/2012 03:51 PM, Shi Jinghao (史经浩) wrote:
>>>
>>> I did a clean clone of release2011-09-02
>>>
>>>  hg clone -r release2011-09-02 http://hg.barrelfish.orgrelease2011-09-02
>>>
>>>  and it still fails with this message when booting:
>>>
>>>  kernel 1 PANIC! kernel assertion "rck_get_coreid() == 0" failed at
>>> ../kernel/arch/scc/rck.c:874
>>>
>>>  which shows that kernel 1 is still trying to boot other cores. The
>>> same output also occurs on a
>>> clean release2011-11-10.
>>>
>>>  Can you show me your menu.lst.scc
>>> so that I can check if my boot configuration is not correct. Mine is:
>>>
>>>    1 timeout 0
>>>   2
>>>   3 # spawnd is used to control which cpus are booted
>>>   4 #
>>>    5 # "spawnd boot" will use the skb and pci to figure out and
>>>   6 #  boot all cores in the machine
>>>   7 #
>>>   8 # "spawnd boot bootscc=1-6" will not use the skb and
>>>   9 # boot the list of cores passed as argument.
>>>  10 # The hardware id of the cores to boot should be specified.
>>>  11 # This list may not include the bsp core id.
>>>  12
>>>  13 title   Barrelfish
>>>  14 root    (nd)
>>>  15 kernel  /scc/sbin/cpu loglevel=4
>>>   16 module  /scc/sbin/cpu
>>>  17 module  /scc/sbin/init
>>>  18
>>>  19 # Domains spawned by init
>>>  20 module  /scc/sbin/mem_serv
>>>  21 module  /scc/sbin/monitor
>>>  22
>>>  23 module  /scc/sbin/chips boot
>>>  24 module  /scc/sbin/ramfsd boot
>>>  25 module  /scc/sbin/spawnd boot bootscc=1-3
>>>  26 module  /scc/sbin/startd boot
>>>  27
>>>  28 module /scc/sbin/examples/xmpl-hello core=0
>>>  29
>>>  30 # modules needed to start the networking
>>>  31 # module  /scc/sbin/eMAC core=0 device=2
>>>  32 # module  /scc/sbin/netd core=0 cardname=eMAC2_0
>>>  33 # module  /scc/sbin/eMAC core=1
>>>  34 # module  /scc/sbin/netd core=1 cardname=eMAC2_1
>>>  35
>>>  36 # Test for network throughput
>>>  37 # module  /scc/sbin/netthroughput core=1 /nfs nfs://
>>> 10.110.4.41/shared /nfs/pravin/testfile.txt
>>>  38
>>>   39 # For webserver
>>>  40 # module  /scc/sbin/webserver core=1 eMAC2_1 10.110.4.41
>>> /shared/pravin/sw
>>>  41
>>>  42 # RCK memory map
>>>   43 # Everything up til VGA is private RAM (maybe we want to throw it
>>> away)
>>>  44 mmap    map 0x0     0xa000      2
>>>  45 # Everything after VGA is private RAM (we also live in this area)
>>>  46 mmap    map 0xe800      0x26ff1800  1
>>>  47 # Shared RAM (over all MCs) in the middle of address space
>>>  48 #mmap   map 0x80000000  0x4000000   1
>>>  49 mmap    map     0x80000000      0x40000000      1
>>>  50 # At the very end we have some platform memory (bootup EEPROM)
>>>  51 mmap    map 0xfffc0000  0x40000     2
>>>
>>>
>>> On Sat, Apr 28, 2012 at 5:23 PM, Stefan Kästle <
>>> stefan.kaestle at inf.ethz.ch> wrote:
>>>
>>>>  Hi,
>>>>
>>>> Yes, exactly: apic_is_bsp is broken on the SCC. It should use
>>>> rck_get_coreid to initialize apic_bsp, but I doesn't. If fixed this
>>>> issue in my tree, but it won't help you, as there are more bugs coming up
>>>> after that.
>>>>
>>>> Are you sure you reverted your revision properly? Can you try a clean
>>>> clone of that revision? I tested revision release2011-09-02 on our SCC, and
>>>> it worked.
>>>>
>>>>
>>>> On 04/27/2012 11:55 AM, Shi Jinghao (史经浩) wrote:
>>>>
>>>>
>>>>  Here is my progress update on the problem of booting on SCC.
>>>>
>>>>  I found that the variable bsp is not correctly set in apic_init
>>>> (/kernel/arch/x86/apic.c). bsp is initiated as true when defined. But there
>>>> is no code that set its value when __scc__ is defined. The only code that
>>>> touch bsp is wapped by #if !defined(__scc__) || defined.
>>>>
>>>>  So I added the following line in text_init
>>>> (/kernel/arch/x86_32/init.c), right after print the "My APIC ID:" message,
>>>>
>>>>  bsp = (apic_id == 0);
>>>>
>>>>  It's a temporal hack that we assume core 0 is always the bsp core.
>>>>
>>>>  After done this, core 1 will realize that it's not bsp core so it
>>>> will not try to boot core 0. But then I immediately found that the
>>>> core_data passed to core 1 is corrupted. I found this from:
>>>>
>>>>  - core_data->memory_base_start = 0x0ffb7000, which seems ok but
>>>> core_data->memory_bits = 0, this will make app_alloc_phys_end = 0x0ffb7001
>>>> and fail app_alloc_phys
>>>>
>>>>  - core_data->dst_core_id and src_arch_id is wrong (some meaningless
>>>> number)
>>>>
>>>>  I'm trying to figure out whether core 0 has place the x86_core_data
>>>> structure correctly..
>>>>
>>>>  Thanks,
>>>> Jinghao
>>>>
>>>> On Fri, Apr 27, 2012 at 2:18 PM, Shi Jinghao <jhshi89 at gmail.com> wrote:
>>>>
>>>>> Hi, Stefan,
>>>>>
>>>>>  I tried release2011-09-02 but it's still not work, and the same
>>>>> problem occurs.
>>>>>
>>>>>  Don't know if you got any clue yet, but when I insert a printk in
>>>>> function kernel_startup (/kernel/arch/x86/startup_x86.c). I find that the
>>>>> function apic_is_bsp() may not work properly: each core think it' startup
>>>>> core!! But when I traced the code and come to apic_base_msr (function
>>>>> apic_init in file /kernel/arch/x86/apic.c), I am lost, and can not figure
>>>>> out where apic_base_msr.bsp is set. Any hints here?
>>>>>
>>>>>  Thanks,
>>>>> Jinghao
>>>>>
>>>>>
>>>>>  Here is the code snippet where I inserted printk, FYI:
>>>>>
>>>>>  290     if (apic_is_bsp()) {
>>>>> 291         printk(LOG_DEBUG, "\n in kernel_startup, I am BSP\n");
>>>>> 292         /* Initialize the location to allocate phys memory from */
>>>>> 293         bsp_init_alloc_addr = glbl_core_data->start_free_ram;
>>>>>  294
>>>>> 295         /* spawn init */
>>>>> 296         init_dcb = spawn_bsp_init(BSP_INIT_MODULE_PATH,
>>>>> bsp_alloc_phys);
>>>>> 297     } else {
>>>>> 298         printk(LOG_DEBUG, "\n in kernel_startup, I am NOT BSP\n");
>>>>> 299         my_core_id = core_data->dst_core_id;
>>>>> 300
>>>>> 301         /* Initialize the allocator */
>>>>> 302         app_alloc_phys_start = core_data->memory_base_start;
>>>>> 303         app_alloc_phys_end   = ((lpaddr_t)1 <<
>>>>> core_data->memory_bits) +
>>>>> 304                                     app_alloc_phys_start;
>>>>> 305
>>>>> 306         init_dcb = spawn_app_init(core_data, APP_INIT_PROG_NAME,
>>>>> app_alloc_phys);
>>>>> 307     }
>>>>>
>>>>>
>>>>> On Tue, Apr 24, 2012 at 4:13 AM, Stefan Kästle <
>>>>> stefan.kaestle at inf.ethz.ch> wrote:
>>>>>
>>>>>>  Hi,
>>>>>>
>>>>>> this is harder to fix than I originally though. I will take some time
>>>>>> to fix (especially since I am a little busy right now).
>>>>>>
>>>>>> Maybe you want to use an earlier version of Barrelfish in the
>>>>>> meanwhile, e.g. revision release2011-09-02?! Since then, nothing
>>>>>> significantly changed for the SCC code anyway. That one works fine on our
>>>>>> SCC. In case you revert, make sure to do a clean rebuild!
>>>>>>
>>>>>> Cheers
>>>>>>  Stefan
>>>>>>
>>>>>> On 04/22/2012 12:18 PM, Shi Jinghao (史经浩) wrote:
>>>>>>
>>>>>> Hi, stefan.
>>>>>>
>>>>>>  I changed the line as you instructed and it works. But when I try
>>>>>> to boot core 0, 1, 2 ,3
>>>>>>  with the following line:
>>>>>>
>>>>>>  module /scc/sbin/spawnd boot bootscc=1-3
>>>>>>
>>>>>>  The same problem occurs (ouput attached). So what's the proper
>>>>>> syntax that correctly
>>>>>> boot scc cores (e.g. {0, 1, 2, 3}, or {0, 2, 4, 6} )?
>>>>>>
>>>>>>  Regards,
>>>>>> Jinghao
>>>>>>
>>>>>>  ---------- OUTPUT START ------------------------------
>>>>>>  Kernel starting at address 0x80100000
>>>>>> Barrelfish CPU driver starting on scc core 0
>>>>>>  init: invoked as: init 2097152
>>>>>> Spawning memory server (scc/sbin/mem_serv)...
>>>>>> Spawning monitor (scc/sbin/monitor)...
>>>>>>  starting monitor as 'scc/sbin/monitor 327680 '
>>>>>> monitor: invoked as: scc/sbin/monitor 327680
>>>>>> RAM allocator initialised, 1612 MB (of 1628 MB) available
>>>>>> Spawning chips on core 0
>>>>>> Spawning /scc/sbin/ramfsd on core 0
>>>>>> Spawning /scc/sbin/spawnd on core 0
>>>>>> Spawning /scc/sbin/startd on core 0
>>>>>> 0 chips: client waiting for ramfs
>>>>>> ramfsd.0: pre-populating from boot image...
>>>>>> 0 chips: client waiting for ramfs
>>>>>>  ramfsd.0: ready
>>>>>> 0 chips: notifying client about ramfs
>>>>>> 0 chips: notifying client about ramfs
>>>>>> kernel 0: Allocating RAM at 0x80000000 uninitialized
>>>>>> kernel 0: Allocating RAM at 0x80010000 uninitialized
>>>>>> spawnd.0: coreid 0 is arch id 0
>>>>>> spawnd.0: coreid 1 is arch id 1
>>>>>>  spawnd.0: coreid 2 is arch id 2
>>>>>> spawnd.0: coreid 3 is arch id 3
>>>>>> 0 chips: client waiting for all_spawnds_up
>>>>>> Monitor 0: booting scc core 1 as '/scc/sbin/cpu'
>>>>>> kernel 0: Allocating RAM at 0x80020000 uninitialized
>>>>>> Kernel starting at address 0x80100000
>>>>>> My APIC ID: 1
>>>>>>  Barrelfish CPU driver starting on scc core 1
>>>>>> init: invoked as: init 2097152
>>>>>> Spawning memory server (scc/sbin/mem_serv)...
>>>>>> Spawning monitor (scc/sbin/monitor)...
>>>>>>  starting monitor as 'scc/sbin/monitor 327680 '
>>>>>> monitor: invoked as: scc/sbin/monitor 327680
>>>>>> RAM allocator initialised, 1612 MB (of 1628 MB) available
>>>>>> Spawning chips on core 1
>>>>>> Spawning /scc/sbin/ramfsd on core 1
>>>>>> Spawning /scc/sbin/spawnd on core 1
>>>>>> Spawning /scc/sbin/startd on core 1
>>>>>> 0 chips: client waiting for ramfs
>>>>>> ramfsd.1: pre-populating from boot image...
>>>>>> 0 chips: client waiting for ramfs
>>>>>>  ramfsd.1: ready
>>>>>> 0 chips: notifying client about ramfs
>>>>>> 0 chips: notifying client about ramfs
>>>>>> kernel 1: Allocating RAM at 0x84000000 uninitialized
>>>>>> kernel 1: Allocating RAM at 0x84010000 uninitialized
>>>>>> spawnd.1: coreid 0 is arch id 2
>>>>>> spawnd.1: coreid 1 is arch id 1
>>>>>>  spawnd.1: coreid 2 is arch id 3
>>>>>> 0 chips: client waiting for all_spawnds_up
>>>>>> Monitor 1: booting scc core 0 as '/scc/sbin/cpu'
>>>>>>  kernel 1: Allocating RAM at 0x84020000 uninitialized
>>>>>> kernel 1 PANIC! kernel assertion "rck_get_coreid() == 0" failed at
>>>>>> ../kernel/arch/scc/rck.c:876
>>>>>> kernel 1: exception 3 (error code 0x0): breakpoint
>>>>>> On behalf of: monitor
>>>>>> Faulting instruction pointer (or following instruction): 0x8010a7bf
>>>>>> (0x 10a7bf in binary)
>>>>>> EAX 0x80118000 EBX 0x80116e88 ECX 0x0 EDX 0x805202c0 ESP 0x80920a08
>>>>>> Top o' stack:
>>>>>> 0x8010a7bf 0x2 0x8 0x10 0x3 0x0 0x8010a7bf 0x8 0x2 0x80520180
>>>>>> 0x80116e88 0x80920a44 0x8010c612 0x80116e88 0x210d6000 0x80920a64
>>>>>> 0x8010c64b 0x801164a0 0x80114c10 0x80114b55
>>>>>> No GDB backend
>>>>>> ---------------- OUTPUT END ----------------------------
>>>>>>
>>>>>>
>>>>>> On Sun, Apr 22, 2012 at 5:33 PM, <
>>>>>> barrelfish-users-request at lists.inf.ethz.ch> wrote:
>>>>>>
>>>>>>> Send Barrelfish-users mailing list submissions to
>>>>>>>        barrelfish-users at lists.inf.ethz.ch
>>>>>>>
>>>>>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>>>>>        https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>>>>>>> or, via email, send a message with subject or body 'help' to
>>>>>>>        barrelfish-users-request at lists.inf.ethz.ch
>>>>>>>
>>>>>>> You can reach the person managing the list at
>>>>>>>        barrelfish-users-owner at lists.inf.ethz.ch
>>>>>>>
>>>>>>> When replying, please edit your Subject line so it is more specific
>>>>>>> than "Re: Contents of Barrelfish-users digest..."
>>>>>>>
>>>>>>>
>>>>>>> Today's Topics:
>>>>>>>
>>>>>>>   1. Problems when booting Barrelfish on SCC (???? <jhshi at cs.hku.hk
>>>>>>> >)
>>>>>>>   2. Re: Problems when booting Barrelfish on SCC (Stefan K?stle)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ----------------------------------------------------------------------
>>>>>>>
>>>>>>> Message: 1
>>>>>>> Date: Sun, 22 Apr 2012 17:12:57 +0800
>>>>>>> From: Shi Jinghao (???? <jhshi at cs.hku.hk>
>>>>>>> Subject: [Barrelfish-users] Problems when booting Barrelfish on SCC
>>>>>>> To: barrelfish-users at lists.inf.ethz.ch
>>>>>>> Message-ID:
>>>>>>>        <
>>>>>>> CAKdW-HFRKv6HWqAxwsL5MMJRqot6BSPkHXPx9ecXg3eaONRHZw at mail.gmail.com>
>>>>>>> Content-Type: text/plain; charset="iso-8859-1"
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm trying to boot barrelfish on SCC. I've managed to compile the
>>>>>>> source,
>>>>>>> get barrelfish0.obj and barrelfish48.mt.
>>>>>>> Then I use the bootscc.sh to boot it. For test, I just want to boot
>>>>>>> core 0
>>>>>>> and core 1, but a weird problem
>>>>>>> happens: core 1 is trying to boot core 0. Here is the output after
>>>>>>> system
>>>>>>> start.
>>>>>>>
>>>>>>> ----------------------OUTPUT START
>>>>>>> ------------------------------------
>>>>>>> Kernel starting at address 0x80100000
>>>>>>> hku at ubuntu:~/fish/hg.barrelfish.org/build$ My APIC ID: 0
>>>>>>> Barrelfish CPU driver starting on scc core 0
>>>>>>> init: invoked as: init 2097152
>>>>>>> Spawning memory server (scc/sbin/mem_serv)...
>>>>>>> Spawning monitor (scc/sbin/monitor)...
>>>>>>> starting monitor as 'scc/sbin/monitor 327680 '
>>>>>>> monitor: invoked as: scc/sbin/monitor 327680
>>>>>>> RAM allocator initialised, 1612 MB (of 1628 MB) available
>>>>>>> Spawning chips on core 0
>>>>>>> Spawning /scc/sbin/ramfsd on core 0
>>>>>>> Spawning /scc/sbin/spawnd on core 0
>>>>>>> Spawning /scc/sbin/startd on core 0
>>>>>>> 0 chips: client waiting for ramfs
>>>>>>> ramfsd.0: pre-populating from boot image...
>>>>>>> 0 chips: client waiting for ramfs
>>>>>>> ramfsd.0: ready
>>>>>>> 0 chips: notifying client about ramfs
>>>>>>> 0 chips: notifying client about ramfs
>>>>>>> kernel 0: Allocating RAM at 0x80000000 uninitialized
>>>>>>> kernel 0: Allocating RAM at 0x80010000 uninitialized
>>>>>>> spawnd.0: coreid 0 is arch id 0
>>>>>>> spawnd.0: coreid 1 is arch id 1
>>>>>>> 0 chips: client waiting for all_spawnds_up
>>>>>>> Monitor 0: booting scc core 1 as '/scc/sbin/cpu'
>>>>>>> kernel 0: Allocating RAM at 0x80020000 uninitialized
>>>>>>> Kernel starting at address 0x80100000
>>>>>>> My APIC ID: 1
>>>>>>> Barrelfish CPU driver starting on scc core 1
>>>>>>> init: invoked as: init 2097152
>>>>>>> Spawning memory server (scc/sbin/mem_serv)...
>>>>>>> Spawning monitor (scc/sbin/monitor)...
>>>>>>> starting monitor as 'scc/sbin/monitor 327680 '
>>>>>>> monitor: invoked as: scc/sbin/monitor 327680
>>>>>>> RAM allocator initialised, 1612 MB (of 1628 MB) available
>>>>>>> Spawning chips on core 1
>>>>>>> Spawning /scc/sbin/ramfsd on core 1
>>>>>>> Spawning /scc/sbin/spawnd on core 1
>>>>>>> Spawning /scc/sbin/startd on core 1
>>>>>>> 0 chips: client waiting for ramfs
>>>>>>> ramfsd.1: pre-populating from boot image...
>>>>>>> 0 chips: client waiting for ramfs
>>>>>>> ramfsd.1: ready
>>>>>>> 0 chips: notifying client about ramfs
>>>>>>> 0 chips: notifying client about ramfs
>>>>>>> kernel 1: Allocating RAM at 0x84000000 uninitialized
>>>>>>> kernel 1: Allocating RAM at 0x84010000 uninitialized
>>>>>>> spawnd.1: coreid 0 is arch id 0
>>>>>>> spawnd.1: coreid 1 is arch id 1
>>>>>>> 0 chips: client waiting for all_spawnds_up
>>>>>>> Monitor 1: booting scc core 0 as '/scc/sbin/cpu'
>>>>>>> ********* Why would core 1 want to boot core 0 ? **************
>>>>>>> kernel 1: Allocating RAM at 0x84020000 uninitialized
>>>>>>> kernel 1 PANIC! kernel assertion "rck_get_coreid() == 0" failed at
>>>>>>> ../kernel/arch/scc/rck.c:876
>>>>>>> kernel 1: exception 3 (error code 0x0): breakpoint
>>>>>>> On behalf of: monitor
>>>>>>> Faulting instruction pointer (or following instruction): 0x8010a7bf
>>>>>>> (0x
>>>>>>> 10a7bf in binary)
>>>>>>> EAX 0x80118000 EBX 0x80116e88 ECX 0x0 EDX 0x805202c0 ESP 0x80920a08
>>>>>>> Top o' stack:
>>>>>>> 0x8010a7bf 0x2 0x8 0x10 0x3 0x0 0x8010a7bf 0x8 0x2 0x80520180
>>>>>>> 0x80116e88
>>>>>>> 0x80920a44 0x8010c612 0x80116e88 0x210d6000 0x80920a64 0x8010c64b
>>>>>>> 0x801164a0 0x80114c10 0x80114b55
>>>>>>> No GDB backend
>>>>>>> --------------- OUTPUT END ------------------------------
>>>>>>>
>>>>>>> As I see it, core 1 seems thought that it's the bsp core (while it's
>>>>>>> not)
>>>>>>> so it's responsible to boot other cores. But I fail to see why core
>>>>>>> 1 would
>>>>>>> think like that.
>>>>>>>
>>>>>>> Any ideas on this? Thanks in advance.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Jinghao
>>>>>>>
>>>>>>> FYI, this is my menu.lst.scc
>>>>>>>
>>>>>>>  1 timeout 0
>>>>>>>  2
>>>>>>>  3 # spawnd is used to control which cpus are booted
>>>>>>>  4 #
>>>>>>>  5 # "spawnd boot" will use the skb and pci to figure out and
>>>>>>>  6 #  boot all cores in the machine
>>>>>>>  7 #
>>>>>>>  8 # "spawnd boot bootscc=1-6" will not use the skb and
>>>>>>>  9 # boot the list of cores passed as argument.
>>>>>>>  10 # The hardware id of the cores to boot should be specified.
>>>>>>>  11 # This list may not include the bsp core id.
>>>>>>>  12
>>>>>>>  13 title   Barrelfish
>>>>>>>  14 root    (nd)
>>>>>>>  15 kernel  /scc/sbin/cpu loglevel=4
>>>>>>>  16 module  /scc/sbin/cpu
>>>>>>>  17 module  /scc/sbin/init
>>>>>>>  18
>>>>>>>  19 # Domains spawned by init
>>>>>>>  20 module  /scc/sbin/mem_serv
>>>>>>>  21 module  /scc/sbin/monitor
>>>>>>>  22
>>>>>>>  23 module  /scc/sbin/chips boot
>>>>>>>  24 module  /scc/sbin/ramfsd boot
>>>>>>>  25 module  /scc/sbin/spawnd boot bootscc=0-1
>>>>>>>  26 module  /scc/sbin/startd boot
>>>>>>>  27
>>>>>>>  28 #module /scc/sbin/examples/xmpl-hello
>>>>>>>  29
>>>>>>>  30 # modules needed to start the networking
>>>>>>>  31 # module  /scc/sbin/eMAC core=0 device=2
>>>>>>>  32 # module  /scc/sbin/netd core=0 cardname=eMAC2_0
>>>>>>>  33 # module  /scc/sbin/eMAC core=1
>>>>>>>  34 # module  /scc/sbin/netd core=1 cardname=eMAC2_1
>>>>>>>  35
>>>>>>>  36 # Test for network throughput
>>>>>>>  37 # module  /scc/sbin/netthroughput core=1 /nfs
>>>>>>> nfs://*MailScanner warning: numerical links are often malicious:*10.110.4.41/shared/nfs/pravin/testfile.txt<http://10.110.4.41/shared/nfs/pravin/testfile.txt>
>>>>>>>  38
>>>>>>>  39 # For webserver
>>>>>>>  40 # module  /scc/sbin/webserver core=1 eMAC2_1 10.110.4.41
>>>>>>> /shared/pravin/sw
>>>>>>>  41
>>>>>>>  42 # RCK memory map
>>>>>>>  43 # Everything up til VGA is private RAM (maybe we want to throw
>>>>>>> it away)
>>>>>>>  44 mmap    map 0x0     0xa000      2
>>>>>>>  45 # Everything after VGA is private RAM (we also live in this area)
>>>>>>>  46 mmap    map 0xe800      0x26ff1800  1
>>>>>>>  47 # Shared RAM (over all MCs) in the middle of address space
>>>>>>>  48 #mmap   map 0x80000000  0x4000000   1
>>>>>>>  49 mmap    map     0x80000000      0x40000000      1
>>>>>>>  50 # At the very end we have some platform memory (bootup EEPROM)
>>>>>>>  51 mmap    map 0xfffc0000  0x40000     2
>>>>>>> -------------- next part --------------
>>>>>>> An HTML attachment was scrubbed...
>>>>>>> URL:
>>>>>>> https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120422/e2ff7982/attachment-0001.html
>>>>>>>
>>>>>>> ------------------------------
>>>>>>>
>>>>>>> Message: 2
>>>>>>> Date: Sun, 22 Apr 2012 11:33:52 +0200
>>>>>>> From: Stefan K?stle <stefan.kaestle at inf.ethz.ch>
>>>>>>> Subject: Re: [Barrelfish-users] Problems when booting Barrelfish on
>>>>>>>        SCC
>>>>>>> To: <barrelfish-users at lists.inf.ethz.ch>
>>>>>>> Message-ID: <4F93D080.6080905 at inf.ethz.ch>
>>>>>>> Content-Type: text/plain; charset="iso-8859-1"
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> can you try replacing
>>>>>>> module  /scc/sbin/spawnd boot bootscc=0-1
>>>>>>> with
>>>>>>> module  /scc/sbin/spawnd boot bootscc=1
>>>>>>> and try it again?
>>>>>>>
>>>>>>> The boot-up of core 0 is implicit - we do not specify it as a spwand
>>>>>>> argument.
>>>>>>>
>>>>>>> Cheers,
>>>>>>>  Stefan
>>>>>>>
>>>>>>> On 04/22/2012 11:12 AM, Shi Jinghao (???) wrote:
>>>>>>> > Hi,
>>>>>>> >
>>>>>>> > I'm trying to boot barrelfish on SCC. I've managed to compile the
>>>>>>> > source, get barrelfish0.obj and barrelfish48.mt <
>>>>>>> http://barrelfish48.mt>.
>>>>>>> > Then I use the bootscc.sh to boot it. For test, I just want to boot
>>>>>>> > core 0 and core 1, but a weird problem
>>>>>>> > happens: core 1 is trying to boot core 0. Here is the output after
>>>>>>> > system start.
>>>>>>> >
>>>>>>> > ----------------------OUTPUT START
>>>>>>> ------------------------------------
>>>>>>> > Kernel starting at address 0x80100000
>>>>>>> > hku at ubuntu:~/fish/hg.barrelfish.org/build$
>>>>>>> > <http://hg.barrelfish.org/build$> My APIC ID: 0
>>>>>>> > Barrelfish CPU driver starting on scc core 0
>>>>>>> > init: invoked as: init 2097152
>>>>>>> > Spawning memory server (scc/sbin/mem_serv)...
>>>>>>> > Spawning monitor (scc/sbin/monitor)...
>>>>>>> > starting monitor as 'scc/sbin/monitor 327680 '
>>>>>>> > monitor: invoked as: scc/sbin/monitor 327680
>>>>>>> > RAM allocator initialised, 1612 MB (of 1628 MB) available
>>>>>>> > Spawning chips on core 0
>>>>>>> > Spawning /scc/sbin/ramfsd on core 0
>>>>>>> > Spawning /scc/sbin/spawnd on core 0
>>>>>>> > Spawning /scc/sbin/startd on core 0
>>>>>>> > 0 chips: client waiting for ramfs
>>>>>>> > ramfsd.0: pre-populating from boot image...
>>>>>>> > 0 chips: client waiting for ramfs
>>>>>>> > ramfsd.0: ready
>>>>>>> > 0 chips: notifying client about ramfs
>>>>>>> > 0 chips: notifying client about ramfs
>>>>>>> > kernel 0: Allocating RAM at 0x80000000 uninitialized
>>>>>>> > kernel 0: Allocating RAM at 0x80010000 uninitialized
>>>>>>> > spawnd.0: coreid 0 is arch id 0
>>>>>>> > spawnd.0: coreid 1 is arch id 1
>>>>>>> > 0 chips: client waiting for all_spawnds_up
>>>>>>> > Monitor 0: booting scc core 1 as '/scc/sbin/cpu'
>>>>>>> > kernel 0: Allocating RAM at 0x80020000 uninitialized
>>>>>>> > Kernel starting at address 0x80100000
>>>>>>> > My APIC ID: 1
>>>>>>> > Barrelfish CPU driver starting on scc core 1
>>>>>>> > init: invoked as: init 2097152
>>>>>>> > Spawning memory server (scc/sbin/mem_serv)...
>>>>>>> > Spawning monitor (scc/sbin/monitor)...
>>>>>>> > starting monitor as 'scc/sbin/monitor 327680 '
>>>>>>> > monitor: invoked as: scc/sbin/monitor 327680
>>>>>>> > RAM allocator initialised, 1612 MB (of 1628 MB) available
>>>>>>> > Spawning chips on core 1
>>>>>>> > Spawning /scc/sbin/ramfsd on core 1
>>>>>>> > Spawning /scc/sbin/spawnd on core 1
>>>>>>> > Spawning /scc/sbin/startd on core 1
>>>>>>> > 0 chips: client waiting for ramfs
>>>>>>> > ramfsd.1: pre-populating from boot image...
>>>>>>> > 0 chips: client waiting for ramfs
>>>>>>> > ramfsd.1: ready
>>>>>>> > 0 chips: notifying client about ramfs
>>>>>>> > 0 chips: notifying client about ramfs
>>>>>>> > kernel 1: Allocating RAM at 0x84000000 uninitialized
>>>>>>> > kernel 1: Allocating RAM at 0x84010000 uninitialized
>>>>>>> > spawnd.1: coreid 0 is arch id 0
>>>>>>> > spawnd.1: coreid 1 is arch id 1
>>>>>>> > 0 chips: client waiting for all_spawnds_up
>>>>>>> > Monitor 1: booting scc core 0 as '/scc/sbin/cpu'
>>>>>>> > ********* Why would core 1 want to boot core 0 ? **************
>>>>>>> > kernel 1: Allocating RAM at 0x84020000 uninitialized
>>>>>>> > kernel 1 PANIC! kernel assertion "rck_get_coreid() == 0" failed at
>>>>>>> > ../kernel/arch/scc/rck.c:876
>>>>>>> > kernel 1: exception 3 (error code 0x0): breakpoint
>>>>>>> > On behalf of: monitor
>>>>>>> > Faulting instruction pointer (or following instruction): 0x8010a7bf
>>>>>>> > (0x 10a7bf in binary)
>>>>>>> > EAX 0x80118000 EBX 0x80116e88 ECX 0x0 EDX 0x805202c0 ESP 0x80920a08
>>>>>>> > Top o' stack:
>>>>>>> > 0x8010a7bf 0x2 0x8 0x10 0x3 0x0 0x8010a7bf 0x8 0x2 0x80520180
>>>>>>> > 0x80116e88 0x80920a44 0x8010c612 0x80116e88 0x210d6000 0x80920a64
>>>>>>> > 0x8010c64b 0x801164a0 0x80114c10 0x80114b55
>>>>>>> > No GDB backend
>>>>>>> > --------------- OUTPUT END ------------------------------
>>>>>>> >
>>>>>>> > As I see it, core 1 seems thought that it's the bsp core (while
>>>>>>> it's
>>>>>>> > not) so it's responsible to boot other cores. But I fail to see why
>>>>>>> > core 1 would think like that.
>>>>>>> >
>>>>>>> > Any ideas on this? Thanks in advance.
>>>>>>> >
>>>>>>> > Regards,
>>>>>>> > Jinghao
>>>>>>> >
>>>>>>> > FYI, this is my menu.lst.scc
>>>>>>> >
>>>>>>> >   1 timeout 0
>>>>>>> >   2
>>>>>>> >   3 # spawnd is used to control which cpus are booted
>>>>>>> >   4 #
>>>>>>> >   5 # "spawnd boot" will use the skb and pci to figure out and
>>>>>>> >   6 #  boot all cores in the machine
>>>>>>> >   7 #
>>>>>>> >   8 # "spawnd boot bootscc=1-6" will not use the skb and
>>>>>>> >   9 # boot the list of cores passed as argument.
>>>>>>> >  10 # The hardware id of the cores to boot should be specified.
>>>>>>> >  11 # This list may not include the bsp core id.
>>>>>>> >  12
>>>>>>> >  13 title   Barrelfish
>>>>>>> >  14 root    (nd)
>>>>>>> >  15 kernel  /scc/sbin/cpu loglevel=4
>>>>>>> >  16 module  /scc/sbin/cpu
>>>>>>> >  17 module  /scc/sbin/init
>>>>>>> >  18
>>>>>>> >  19 # Domains spawned by init
>>>>>>> >  20 module  /scc/sbin/mem_serv
>>>>>>> >  21 module  /scc/sbin/monitor
>>>>>>> >  22
>>>>>>> >  23 module  /scc/sbin/chips boot
>>>>>>> >  24 module  /scc/sbin/ramfsd boot
>>>>>>> >  25 module  /scc/sbin/spawnd boot bootscc=0-1
>>>>>>> >  26 module  /scc/sbin/startd boot
>>>>>>> >  27
>>>>>>> >  28 #module /scc/sbin/examples/xmpl-hello
>>>>>>> >  29
>>>>>>> >  30 # modules needed to start the networking
>>>>>>> >  31 # module  /scc/sbin/eMAC core=0 device=2
>>>>>>> >  32 # module  /scc/sbin/netd core=0 cardname=eMAC2_0
>>>>>>> >  33 # module  /scc/sbin/eMAC core=1
>>>>>>> >  34 # module  /scc/sbin/netd core=1 cardname=eMAC2_1
>>>>>>> >  35
>>>>>>> >  36 # Test for network throughput
>>>>>>> >  37 # module  /scc/sbin/netthroughput core=1 /nfs
>>>>>>> > nfs://*MailScanner warning: numerical links are often malicious:*10.110.4.41/shared<http://10.110.4.41/shared><
>>>>>>> *MailScanner warning: numerical links are often malicious:*http://10.110.4.41/shared<http://10.110.4.41/shared>
>>>>>>> >
>>>>>>> > /nfs/pravin/testfile.txt
>>>>>>> >  38
>>>>>>> >  39 # For webserver
>>>>>>> >  40 # module  /scc/sbin/webserver core=1 eMAC2_1 10.110.4.41
>>>>>>> > /shared/pravin/sw
>>>>>>> >  41
>>>>>>> >  42 # RCK memory map
>>>>>>> >  43 # Everything up til VGA is private RAM (maybe we want to throw
>>>>>>> it
>>>>>>> > away)
>>>>>>> >  44 mmap    map 0x0     0xa000      2
>>>>>>> >  45 # Everything after VGA is private RAM (we also live in this
>>>>>>> area)
>>>>>>> >  46 mmap    map 0xe800      0x26ff1800  1
>>>>>>> >  47 # Shared RAM (over all MCs) in the middle of address space
>>>>>>> >  48 #mmap   map 0x80000000  0x4000000   1
>>>>>>> >  49 mmap    map     0x80000000      0x40000000      1
>>>>>>> >  50 # At the very end we have some platform memory (bootup EEPROM)
>>>>>>> >  51 mmap    map 0xfffc0000  0x40000     2
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > _______________________________________________
>>>>>>> > Barrelfish-users mailing list
>>>>>>> > Barrelfish-users at lists.inf.ethz.ch
>>>>>>> > https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>>>>>>> -------------- next part --------------
>>>>>>> An HTML attachment was scrubbed...
>>>>>>> URL:
>>>>>>> https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120422/ffc2681c/attachment.html
>>>>>>>
>>>>>>> ------------------------------
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Barrelfish-users mailing list
>>>>>>> Barrelfish-users at lists.inf.ethz.ch
>>>>>>> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>>>>>>>
>>>>>>>
>>>>>>> End of Barrelfish-users Digest, Vol 27, Issue 9
>>>>>>> ***********************************************
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>   --
>>>> Stefan
>>>>
>>>>
>>>
>>> --
>>> Stefan
>>>
>>>
>>
>> _______________________________________________
>> Barrelfish-users mailing list
>> Barrelfish-users at lists.inf.ethz.ch
>> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>>
>>
>
>
> --
> Zeus Gómez Marmolejo
> Barcelona Supercomputing Center
> PhD student
> http://www.bsc.es
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120503/d9f44a81/attachment-0001.html 


More information about the Barrelfish-users mailing list