[Barrelfish-users] {Disarmed} Re: Problems when booting Barrelfish on SCC
Stefan Kästle
stefan.kaestle at inf.ethz.ch
Sat Apr 28 16:41:03 CEST 2012
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 <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
>
>
> On Sat, Apr 28, 2012 at 5:23 PM, Stefan Kästle
> <stefan.kaestle at inf.ethz.ch <mailto: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
>> <mailto: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
>> <mailto: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
>>> <mailto:barrelfish-users-request at lists.inf.ethz.ch>> wrote:
>>>
>>> Send Barrelfish-users mailing list submissions to
>>> barrelfish-users at lists.inf.ethz.ch
>>> <mailto: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
>>> <mailto: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
>>> <mailto: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 <mailto: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
>>> <mailto:jhshi at cs.hku.hk>>
>>> Subject: [Barrelfish-users] Problems when booting
>>> Barrelfish on SCC
>>> To: barrelfish-users at lists.inf.ethz.ch
>>> <mailto:barrelfish-users at lists.inf.ethz.ch>
>>> Message-ID:
>>> <CAKdW-HFRKv6HWqAxwsL5MMJRqot6BSPkHXPx9ecXg3eaONRHZw at mail.gmail.com
>>> <mailto: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
>>> <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/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
>>> <mailto:stefan.kaestle at inf.ethz.ch>>
>>> Subject: Re: [Barrelfish-users] Problems when
>>> booting Barrelfish on
>>> SCC
>>> To: <barrelfish-users at lists.inf.ethz.ch
>>> <mailto:barrelfish-users at lists.inf.ethz.ch>>
>>> Message-ID: <4F93D080.6080905 at inf.ethz.ch
>>> <mailto: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> <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$>
>>> > <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>
>>> > /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
>>> <mailto: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
>>> <mailto: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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120428/16c04315/attachment-0001.html
More information about the Barrelfish-users
mailing list