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

Simon Gerber simon.gerber at inf.ethz.ch
Wed Jul 24 10:12:59 CEST 2013


Hi Malte,

I'd suggest to turn on (in addition to Manuel's suggestion) debugging
for the acpi subsystem if you want to follow up on the 32bit issue.
This can be done in usr/acpi/acpi_debug.h by uncommenting the line
that defines ACPI_SERVICE_DEBUG.

For the x86_64 issue my best suggestion right now is to add a printf
in mm_realloc_range (lib/mm/mm.c:661) to see what arguments are given
to the function. The only places where this function is called are in
the acpi subsystem so I would leave ACPI_SERVICE_DEBUG on for this as
well.

Cheers,
-- Simon

On 24 July 2013 09:52, Manuel Stocker <mensi at vis.ethz.ch> wrote:
> 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
>>
>
> _______________________________________________
> 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