Bug of 1G memory use.

Description:

When allow system using more than 512M of memory, user level apps execution can cause ‘Segmentation fault’ or glibc error.


Reproduction:

On PandaBoard:

 

In bootstrap: in  base-foc/contrib/l4/mk/platforms/pandaboard.conf

if set

PLATFORM_RAM_SIZE_MB = 1024

(whole physical memory present on PandaBoard)

 

And if allow L4Linux using more than 512M memory:

when modify run script: ‘ports-foc/run/linux_panda.run’:

 

<start name="vmlinux.1" priority="-1">

            <binary name="l4linux"/>

            <resource name="RAM" quantum="796M"/>

            <config args="mem=754M l4x_rd=initrd.gz">

                        <block label="sda" />

            </config>

</start>

(754M  is given for example)

System boots up. But user level apps can cause ‘Segmentation fault’ or glibc error.

Error is stable on command ‘find’ on fresh-booted system.

 

On QEMU:

To support 1G of memory on Realview platform file ‘base-foc/contrib/l4/pkg/bootstrap/server/src/platform/rv.cc’ (attached) was modified. (Address regions got from platform documentation.)

On system boot below error occurs:

Assertion failed: 'idx < _nchips' [ret=0xf006f214]

  /Projects/l4bsdd/base-foc/contrib/kernel/fiasco/src/kern/irq_mgr_multi_chip.cpp:76 at f0007c00

There is no such error if Fiasco.OC was built with  –O1 gcc option (only with –O2), but L4Linux can’t boot anyway because of memory allocation error.

Best regards,
Vladimir Shilkin