[Barrelfish-users] Problems when booting Barrelfish on SCC

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


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://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.html 


More information about the Barrelfish-users mailing list