[Barrelfish-users] Problems when booting Barrelfish on SCC

Shi Jinghao (史经浩) jhshi at cs.hku.hk
Sun Apr 22 13:11:33 CEST 2012


I removed the assert as you said, but it didn't work. Here is each cores
output in terms of spawnd:

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

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

** I can understand that since core 1's spawnd report that "coreid 0 is
arch id 2", so when it says "booting scc core 0 as ...", it's actually
about to boot core 2. So core 2 is up.

spawnd.2: coreid 0 is arch id 1
spawnd.2: coreid 1 is arch id 3
spawnd.2: coreid 2 is arch id 2
0 chips: client waiting for all_spawnds_up
Monitor 2: booting scc core 0 as '/scc/sbin/cpu'
kernel 2: Allocating RAM at 0x88020000 uninitialized

** but core 2 report that "coreid 0 is arch id 1", so it then starts to
boot core 1. After this, system stalls.

Should each core's "coreid to arch id" map identical? Things get totally
messed up here....

On Sun, Apr 22, 2012 at 6:31 PM, Laurențiu Dascălu <
laurentiu.dascalu at epfl.ch> wrote:

> On 04/22/2012 03:18 AM, Shi Jinghao (史经浩) wrote:
>
>> 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)
>>
>
> Hello,
>
> I don't have experience with Barrelfish, but after looking here[0], it
> seems that Barrelfish doesn't boot on another CPU than the first one (cpuid
> == 0):
>
> 875    // XXX: Only works from core 0 for now
> 876    assert(rck_get_coreid() == 0);
>
> I think that your boot processor is not core 0 and that's why it crashes.
> I guess that you can remove this assert and then see what happens (i.e.
> make the OS boot).
>
> [0] http://www.lingrok.org/xref/**barrelfish/kernel/arch/scc/**rck.c<http://www.lingrok.org/xref/barrelfish/kernel/arch/scc/rck.c>
>
> Thanks,
> --
> Laurențiu Dascălu
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120422/1db516a1/attachment.html 


More information about the Barrelfish-users mailing list