powerpc/mm: Move 64-bit unmapped_area to top of address space
We currently place mmaps just below the stack on 32bit, but leave them
in the middle of the address space on 64bit:
00100000-
00120000 r-xp
00100000 00:00 0 [vdso]
10000000-
10010000 r-xp
00000000 08:06 179534 /tmp/sleep
10010000-
10020000 rw-p
00000000 08:06 179534 /tmp/sleep
10020000-
10130000 rw-p
10020000 00:00 0 [heap]
40000000000-
40000030000 r-xp
00000000 08:06 440743 /lib64/ld-2.9.so
40000030000-
40000040000 rw-p
00020000 08:06 440743 /lib64/ld-2.9.so
40000050000-
400001f0000 r-xp
00000000 08:06 440671 /lib64/libc-2.9.so
400001f0000-
40000200000 r--p
00190000 08:06 440671 /lib64/libc-2.9.so
40000200000-
40000220000 rw-p
001a0000 08:06 440671 /lib64/libc-2.9.so
40000220000-
40008230000 rw-p
40000220000 00:00 0
fffffbc0000-
fffffd10000 rw-p
fffffeb0000 00:00 0 [stack]
Right now it isn't an issue, but at some stage we will run into mmap or
hugetlb allocation issues. Using the same layout as 32bit gives us a
some breathing room. This matches what x86-64 is doing too.
00100000-
00103000 r-xp
00100000 00:00 0 [vdso]
10000000-
10001000 r-xp
00000000 08:06 554894 /tmp/test
10010000-
10011000 r--p
00000000 08:06 554894 /tmp/test
10011000-
10012000 rw-p
00001000 08:06 554894 /tmp/test
10012000-
10113000 rw-p
10012000 00:00 0 [heap]
fffefdf7000-
ffff7df8000 rw-p
fffefdf7000 00:00 0
ffff7df8000-
ffff7f97000 r-xp
00000000 08:06 130591 /lib64/libc-2.9.so
ffff7f97000-
ffff7fa6000 ---p
0019f000 08:06 130591 /lib64/libc-2.9.so
ffff7fa6000-
ffff7faa000 r--p
0019e000 08:06 130591 /lib64/libc-2.9.so
ffff7faa000-
ffff7fc0000 rw-p
001a2000 08:06 130591 /lib64/libc-2.9.so
ffff7fc0000-
ffff7fc4000 rw-p
ffff7fc0000 00:00 0
ffff7fc4000-
ffff7fec000 r-xp
00000000 08:06 130663 /lib64/ld-2.9.so
ffff7fee000-
ffff7ff0000 rw-p
ffff7fee000 00:00 0
ffff7ffa000-
ffff7ffb000 rw-p
ffff7ffa000 00:00 0
ffff7ffb000-
ffff7ffc000 r--p
00027000 08:06 130663 /lib64/ld-2.9.so
ffff7ffc000-
ffff7fff000 rw-p
00028000 08:06 130663 /lib64/ld-2.9.so
ffff7fff000-
ffff8000000 rw-p
ffff7fff000 00:00 0
fffffc59000-
fffffc6e000 rw-p
ffffffeb000 00:00 0 [stack]
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>