[Barrelfish-users] Barrelfish error

Simon Gerber simon.gerber at inf.ethz.ch
Mon Sep 29 10:06:09 CEST 2014


Hi Joe,

The error you're seeing is because sometimes the second core in qemu 
takes too long to come up after sending the IPI. The code running on 
core 0 waits for a set amount of time before deciding that the core id 
it tried to boot (core 1 in this case) does not exist, at which point 
the system crashes because other parts of the code *know* that the core 
exists and therefore are not prepared to handle an error indicating 
otherwise.

A quick workaround is to modify STARTUP_TIMEOUT (line 39 in 
kernel/arch/x86/start_aps.c) to give qemu more time to bring the AP 
cores up (e.g. set STARTUP_TIMEOUT to 0xfffffff).

Hope this helps,
-- Simon

On 27.09.2014 04:35, Joe M wrote:
> Hello,
>
> I see this error when I do "make sim". Just wanted to check if it is
> fixable.
>
> make sim
> qemu-img create hd.img 10M
> Formatting 'hd.img', fmt=raw size=10485760
> qemu-system-x86_64 -smp 2 -m 1024 -net nic,model=e1000 -net user -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -drive id=disk,file=hd.img,if=none -nographic -kernel x86_64/sbin/elver -append 'loglevel=4' -initrd 'x86_64/sbin/cpu loglevel=4,x86_64/sbin/init,x86_64/sbin/mem_serv,x86_64/sbin/monitor,x86_64/sbin/ramfsd boot,x86_64/sbin/skb boot,skb_ramfs.cpio.gz nospawn,x86_64/sbin/kaluga boot,x86_64/sbin/acpi boot,x86_64/sbin/spawnd boot,x86_64/sbin/startd boot,x86_64/sbin/routing_setup boot,x86_64/sbin/pci auto,x86_64/sbin/ahcid auto,x86_64/sbin/rtl8029 auto,x86_64/sbin/e1000n auto,x86_64/sbin/NGD_mng auto,x86_64/sbin/netd auto,x86_64/sbin/serial,x86_64/sbin/fish nospawn,x86_64/sbin/angler serial0.terminal xterm'
> Kernel starting at address 0xfffffe000990b000
> Barrelfish CPU driver starting on x86_64 apic_id 0
> kernel 0: Measured 1000011674 APIC timer counts in one RTC second, 1781148 data points.
> kernel 0: Considerable TSC jitter detected! 806 ticks on average.
> kernel 0: Measured 2594288 TSC counts per ms, 99 data points. Average jitter 806 TSC ticks.
> spawn module: x86_64/sbin/init
> aligning free memory start to 0xac00000 (was 0xaac6000): wasting 1256 kB
> Raw MMAP from BIOS
>          0x00000000 - 0x0009fc00 Type: 1 Length: 0x9fc00
>          0x0009fc00 - 0x000a0000 Type: 2 Length: 0x400
>          0x000f0000 - 0x00100000 Type: 2 Length: 0x10000
>          0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000
>          0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000
>          0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000
> Sorted MMAP
>          0x00000000 - 0x0009fc00 Type: 1 Length: 0x9fc00
>          0x0009fc00 - 0x000a0000 Type: 2 Length: 0x400
>          0x000f0000 - 0x00100000 Type: 2 Length: 0x10000
>          0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000
>          0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000
>          0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000
> Preprocessed MMAP
>          0x00000000 - 0x0009fc00 Type: 1 Length: 0x9fc00
>          0x0009fc00 - 0x000a0c00 Type: 2 Length: 0x1000
>          0x000f0000 - 0x00100000 Type: 2 Length: 0x10000
>          0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000
>          0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000
>          0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000
> Pagealigned MMAP
>          0x00000000 - 0x0009f000 Type: 1 Length: 0x9f000
>          0x0009f000 - 0x000a0c00 Type: 2 Length: 0x1c00
>          0x000f0000 - 0x00100000 Type: 2 Length: 0x10000
>          0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000
>          0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000
>          0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000
> init: invoked as: init 2097152
> Spawning memory server (x86_64/sbin/mem_serv)...
> Spawning monitor (x86_64/sbin/monitor)...
> monitor: invoked as: x86_64/sbin/monitor 327680
> Init done.
> RAM allocator initialised, 835 MB (of 851 MB) available
> Spawning ramfsd on core 0
> ramfsd.0: pre-populating from boot image...
> ramfsd.0: unpacking Gzipped CPIO skb_ramfs.cpio.gz
> ramfsd.0: ready
> Spawning skb on core 0
> Spawning x86_64/sbin/kaluga on core 0
> Spawning x86_64/sbin/acpi on core 0
> Spawning x86_64/sbin/spawnd on core 0
> Spawning x86_64/sbin/startd on core 0
> Spawning x86_64/sbin/routing_setup on core 0
> skb.0: waiting for: all_spawnds_up
> Spawnd up.
> spawnd.0: we're bsp. start other cores.
> Kaluga: parse boot modules...
> Kaluga running on x86.
> kernel: 0: installing handler for IRQ 0
> Monitor 0: booting x86_64 core 1 as '/x86_64/sbin/cpu loglevel=4'
> ERROR: kaluga.0 in boot_core_reply() ../usr/kaluga/start_cpu.c:72
> ERROR: msgerr in boot_core_reply, exiting
>
> Failure: (        monitor) Failure in spawn_xcore_monitor() [MON_ERR_SPAWN_XCORE_MONITOR]
> Failure: (        monitor) Failure spawning a new core [MON_ERR_SPAWN_CORE]
> Failure: (         kernel) Unable to boot core: core ID does not exist [SYS_ERR_CORE_NOT_FOUND]
> Aborted
> Kernel starting at address 0xfffffe001c001000
> Barrelfish CPU driver starting on x86_64 apic_id 1
> kernel 1: Considerable TSC jitter detected! 4011035 ticks on average.
> kernel 1: Measured 4615547 TSC counts per ms, 99 data points. Average jitter 4011035 TSC ticks.
> spawn module: monitor
> monitor: invoked as: monitor 0 chanid=0 archid=0
> assertion "((_binding->rx_vtbl).mem_serv_iref_request) != NULL" failed: file "./x86_64/usr/monitor/_for_app_monitor/intermon_flounder_bindings.c", line 6800, function: intermon_ump_rx_handler
> Aborted
> kernel 0: monitor terminated; expect badness!
>
> Sorry for the bother,
> Joe
>
>
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>



More information about the Barrelfish-users mailing list