http://bugzilla.opensuse.org/show_bug.cgi?id=957379
http://bugzilla.opensuse.org/show_bug.cgi?id=957379#c1
--- Comment #1 from Alexander Graf ---
The default RAM size for Exynos4 boards is 1GB. So we're trying a 1GB
allocation on a system that has 3GB of total virtual address space. In
succeeding cases we have:
6474 mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb3998000
[...]
6474 brk(0x80fc9000) = 0x80fc9000
6474 mmap2(NULL, 1073741824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x40000000
while in the failed case we get:
6334 mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x43447000
[...]
6334 brk(0x80fc9000) = 0x80fc9000
6334 mmap2(NULL, 1073741824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = -1 ENOMEM (Cannot allocate memory)
So I'd guess that we simply don't have space to fit 1GB naturally aligned
memory into our address space in the failed case because other allocations
clobber the only spot we can have this on because
0x00000000 - 0x40000000 reserved because of NULL
0x40000000 - 0x80000000
0x80000000 - 0xc0000000 used by brk heap, stack in successful case
0xc0000000 - end reserved for kernel
Why do we some times have allocations (and the stack) at 0x4.. while at 0xb..
at other times? I don't know yet ;).
--
You are receiving this mail because:
You are on the CC list for the bug.