[Barrelfish-users] skb problems booting on x86_32: can't find Eclipse?

Manuel Stocker mensi at vis.ethz.ch
Wed Jul 24 09:52:50 CEST 2013


Hi Malte,

As far as I remember we had similar symptoms when trying to boot 
Barrelfish on a DELL Optiplex machine for our lab project. It has been a 
while, so I might be wrong here. The issues were caused by a bad memory 
map given by the DELL BIOS, so I added some fixup code in startup_arch.c 
(only for x86_64).

The problem is described in section 10.2.3 in TN-015 [1]
The fixup code is in create_phys_caps for x64 [2]
And missing in 32bit [3]

You might want to check the debug output it should generate for x64 and 
maybe adapt the code for 32bit.

Cheers,
Manuel

[1] http://www.barrelfish.org/TN-015-DiskDriverArchitecture.pdf
[2] 
http://hg.barrelfish.org/barrelfish/file/tip/kernel/arch/x86_64/startup_arch.c#l145
[3] 
http://hg.barrelfish.org/barrelfish/file/tip/kernel/arch/x86_32/startup_arch.c#l151


Am 24.07.2013 09:37, schrieb Malte Schwarzkopf:
> Hi Stefan and Simon (and others),
>
> Ah, that was indeed the error -- search and replace failed to catch that
> one! :-)
>
> The boot now gets further along, but then fails with an assertion
> failure in acpi_main.c:
>
> -------->8---------------
> [...]
>
> RAM allocator initialised, 1946 MB (of 1962 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 /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/kaluga on core 0
> Spawning /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/acpi on core 0
> Spawning /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/spawnd on core 0
> Spawning /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/startd on core 0
> Spawning /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/routing_setup
> on core 0
> skb.0: waiting for: all_spawnds_up
> Kaluga running.
> err_revoke_first: (0x85118380, 1, 8)
> assertion "err_is_ok(err)" failed: file "../usr/acpi/acpi_main.c", line
> 184, function: init_allocators
> Aborted
>
> -------->8---------------
>
> The machine is a Dell PowerEdge 2650, so really quite ancient by any
> modern standard.
>
> On a 64-bit PowerEdge SC 1250, I got the following assertion failure:
>
> -------->8---------------
>
> [...]
> Kaluga running.
> skb.0: waiting for: skb
> skb.0: waiting for: all_spawnds_up
> assertion "(base & (UNBITS_GENPA(sizebits) - 1 )) == 0" failed: file
> "../lib/mm/mm.c", line 671, function: mm_realloc_range
> Aborted
>
> -------->8---------------
>
>
> I realize that these machines are bad bets to try in the first place, as
> they aren't on the supported hardware list and (relatively speaking)
> quite ancient. I'll try some more likely candidates when I can get my
> hands on them.
>
> Cheers,
> Malte
>
>
> On 23/07/2013 21:41, Simon Gerber wrote:
>> Hi Malte,
>>
>> Looking at your menu.lst it seems that you missed the line
>>
>>    modulenounzip /skb_ramfs.cpio.gz nospawn
>>
>> when inserting the prefix of your tftpboot location.
>>
>> I'd assume it should be
>>
>>    modulenounzip /usr/groups/srgboot/ms705/barrelfish/skb_ramfs.cpio.gz nospawn
>>
>> -- Simon
>>
>> On 23 July 2013 22:27, Malte Schwarzkopf <malte.schwarzkopf at cl.cam.ac.uk> wrote:
>>> Hi all,
>>>
>>> In order to find machines that work with Barrelfish, I've set up both
>>> x86_64 and x86_32 versions of Barrelfish on our test machine netboot
>>> setup here in Cambridge.
>>>
>>> Since most of the idle machines I could test are old 32-bit ones, I've
>>> got more samples for this than for x86_64, but unfortunately no better
>>> luck getting things to boot. However, the error message I receive on one
>>> of the x86_32 machines is quite curious:
>>>
>>> -------->8---------------
>>> Kernel starting at address 0x80100000
>>> Barrelfish CPU driver starting on x86_32 core 0
>>> kernel 0: Measured 99484219 APIC timer counts in one RTC second, 170893
>>> data points.
>>> kernel 0: Measured 2387710 TSC counts per ms, 99 data points. Average
>>> jitter 3 TSC ticks.
>>> spawn module: x86_32/sbin/init
>>> init: invoked as: init 2097152
>>> Spawning memory server (x86_32/sbin/mem_serv)...
>>> Spawning monitor (x86_32/sbin/monitor)...
>>> monitor: invoked as: x86_32/sbin/monitor 327680
>>> RAM allocator initialised, 1947 MB (of 1963 MB) available
>>> Spawning ramfsd on core 0
>>> ramfsd.0: pre-populating from boot image...
>>> ramfsd.0: ready
>>> Spawning skb on core 0
>>> Aborting: Can't find boot file! Please check either
>>> a) your program's setting for eclipsedir in ec_set_option(), or
>>> b) your setting for ECLIPSEDIR environment variable.
>>>   in ec_init()
>>> -------->8---------------
>>>
>>> I've tried booting without the SKB active by passing
>>> "bootapic-x86_32=..." to spawnd, but this makes no difference as the
>>> bootup fails before I even get to that module.
>>>
>>> When using x86_64, this bit works fine (though later bits fail in ways I
>>> do not yet understand, and sometimes without error message).
>>>
>>> Any ideas? (My menu.list is included below for reference; presumably
>>> using full absolute paths to the files on the TFTP server does not cause
>>> a problem?).
>>>
>>> Cheers,
>>> Malte
>>>
>>>
>>> -------->8--------------- menu.lst -------->8---------------
>>>
>>> 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 bootapic-x86_32=1-5" will not use the skb and
>>> # boot the list of cores passed as argument.
>>> # The APIC id of the cores to boot should be specified.
>>> # This list may not include the bsp core id.
>>>
>>> title   Barrelfish
>>> root    (nd)
>>> kernel  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/cpu loglevel=4
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/cpu loglevel=4
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/init
>>>
>>> # Domains spawned by init
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/mem_serv
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/monitor
>>>
>>> # Special boot time domains spawned by monitor
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/ramfsd boot
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/skb boot
>>> modulenounzip /skb_ramfs.cpio.gz nospawn
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/kaluga boot
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/acpi boot
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/spawnd boot
>>> bootapic-x86_32=0-1
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/startd boot
>>> module /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/routing_setup boot
>>>
>>> module /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/pci auto
>>>
>>> # General user domains
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/serial
>>> module  /usr/groups/srgboot/ms705/barrelfish/x86_32/sbin/fish
>>>
>>> _______________________________________________
>>> Barrelfish-users mailing list
>>> Barrelfish-users at lists.inf.ethz.ch
>>> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>
>
> _______________________________________________
> 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