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.
Vladimir Shilkin