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

Zeus Gómez Marmolejo zeus.gomez at bsc.es
Wed May 2 19:06:57 CEST 2012


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.org release2011-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/20120502/f0b7c2a4/attachment-0001.html 


More information about the Barrelfish-users mailing list