On 11/05/2017 01:18 PM, Nicholas Piggin wrote:
There was a recent change to move to 128TB address space by default, and option for 512TB addresses if explicitly requested.
Do you have a commit hash for the introduction of 128TB by default? Thanks.
Your brk request asked for > 128TB which the kernel gave it, but the address limit in the paca that the SLB miss tests against was not updated to reflect the switch to 512TB address space. Why is your brk starting so high? Are you trying to test the > 128TB case, or maybe something is confused by the 64->128TB change? What's the strace look like if you run on a distro or <= 4.10 kernel?
I think it is a consequence of running with an explicit loader invocation. With that, the heap is placed above ld.so, which can be quite high in the address space.
I'm attaching two runs of cat, one executing directly as /bin/cat, and one with /lib64/ld64.so.1 /bin/cat.
Fortunately, this does *not* apply to PIE binaries (also attached). However, explicit loader invocations are sometimes used in test suites (not just for glibc), and these sporadic test failures are quite annoying.
Do you still need the strace log? And if yes, of what exactly?
Something like the following patch may help if you could test.
Okay, this will take some time. Thanks, Florian
1231d0000-1231e0000 r-xp 00000000 fd:00 17852425 /root/a.out 1231e0000-1231f0000 r--p 00000000 fd:00 17852425 /root/a.out 1231f0000-123200000 rw-p 00010000 fd:00 17852425 /root/a.out 1000dbc0000-1000dbf0000 rw-p 00000000 00:00 0 [heap] 7fffa31d0000-7fffa3400000 r-xp 00000000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fffa3400000-7fffa3410000 ---p 00230000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fffa3410000-7fffa3420000 r--p 00230000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fffa3420000-7fffa3430000 rw-p 00240000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fffa3440000-7fffa3460000 r-xp 00000000 00:00 0 [vdso] 7fffa3460000-7fffa34a0000 r-xp 00000000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fffa34a0000-7fffa34b0000 r--p 00030000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fffa34b0000-7fffa34c0000 rw-p 00040000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fffe9450000-7fffe9480000 rw-p 00000000 00:00 0 [stack]
7fff7e790000-7fff7e7d0000 rw-p 00000000 00:00 0 7fff7e7d0000-7fff7e830000 r--p 00000000 fd:00 25167925 /usr/lib/locale/en_US.utf8/LC_CTYPE 7fff7e830000-7fff7e840000 r--p 00000000 fd:00 25167928 /usr/lib/locale/en_US.utf8/LC_NUMERIC 7fff7e840000-7fff7e850000 r--p 00000000 fd:00 16798929 /usr/lib/locale/en_US.utf8/LC_TIME 7fff7e850000-7fff7e980000 r--p 00000000 fd:00 25167924 /usr/lib/locale/en_US.utf8/LC_COLLATE 7fff7e980000-7fff7e990000 r--p 00000000 fd:00 16798927 /usr/lib/locale/en_US.utf8/LC_MONETARY 7fff7e990000-7fff7e9a0000 r--p 00000000 fd:00 2511 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES 7fff7e9a0000-7fff7e9b0000 r--p 00000000 fd:00 16798942 /usr/lib/locale/en_US.utf8/LC_PAPER 7fff7e9b0000-7fff7e9c0000 r--p 00000000 fd:00 25167927 /usr/lib/locale/en_US.utf8/LC_NAME 7fff7e9c0000-7fff7e9d0000 r--p 00000000 fd:00 16798924 /usr/lib/locale/en_US.utf8/LC_ADDRESS 7fff7e9d0000-7fff7e9e0000 r--p 00000000 fd:00 16798928 /usr/lib/locale/en_US.utf8/LC_TELEPHONE 7fff7e9e0000-7fff7e9f0000 r--p 00000000 fd:00 16798926 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT 7fff7e9f0000-7fff7ea00000 r--s 00000000 fd:00 8390669 /usr/lib64/gconv/gconv-modules.cache 7fff7ea00000-7fff7ec30000 r-xp 00000000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff7ec30000-7fff7ec40000 ---p 00230000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff7ec40000-7fff7ec50000 r--p 00230000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff7ec50000-7fff7ec60000 rw-p 00240000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff7ec60000-7fff7ec70000 r--p 00000000 fd:00 16798925 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION 7fff7ec70000-7fff7ec80000 r-xp 00000000 fd:00 202293 /usr/bin/cat 7fff7ec80000-7fff7ec90000 r--p 00000000 fd:00 202293 /usr/bin/cat 7fff7ec90000-7fff7eca0000 rw-p 00010000 fd:00 202293 /usr/bin/cat 7fff7eca0000-7fff7ecc0000 r-xp 00000000 00:00 0 [vdso] 7fff7ecc0000-7fff7ed00000 r-xp 00000000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fff7ed00000-7fff7ed10000 r--p 00030000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fff7ed10000-7fff7ed20000 rw-p 00040000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fff9be20000-7fff9be50000 rw-p 00000000 00:00 0 [heap] 7ffffd470000-7ffffd4a0000 rw-p 00000000 00:00 0 [stack]
13eea0000-13eeb0000 r-xp 00000000 fd:00 202293 /usr/bin/cat 13eeb0000-13eec0000 r--p 00000000 fd:00 202293 /usr/bin/cat 13eec0000-13eed0000 rw-p 00010000 fd:00 202293 /usr/bin/cat 1003ebe0000-1003ec10000 rw-p 00000000 00:00 0 [heap] 7fff97490000-7fff974d0000 rw-p 00000000 00:00 0 7fff974d0000-7fff97530000 r--p 00000000 fd:00 25167925 /usr/lib/locale/en_US.utf8/LC_CTYPE 7fff97530000-7fff97540000 r--p 00000000 fd:00 25167928 /usr/lib/locale/en_US.utf8/LC_NUMERIC 7fff97540000-7fff97550000 r--p 00000000 fd:00 16798929 /usr/lib/locale/en_US.utf8/LC_TIME 7fff97550000-7fff97680000 r--p 00000000 fd:00 25167924 /usr/lib/locale/en_US.utf8/LC_COLLATE 7fff97680000-7fff97690000 r--p 00000000 fd:00 16798927 /usr/lib/locale/en_US.utf8/LC_MONETARY 7fff97690000-7fff976a0000 r--p 00000000 fd:00 2511 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES 7fff976a0000-7fff976b0000 r--p 00000000 fd:00 16798942 /usr/lib/locale/en_US.utf8/LC_PAPER 7fff976b0000-7fff976c0000 r--p 00000000 fd:00 25167927 /usr/lib/locale/en_US.utf8/LC_NAME 7fff976c0000-7fff976d0000 r--p 00000000 fd:00 16798924 /usr/lib/locale/en_US.utf8/LC_ADDRESS 7fff976d0000-7fff976e0000 r--p 00000000 fd:00 16798928 /usr/lib/locale/en_US.utf8/LC_TELEPHONE 7fff976e0000-7fff976f0000 r--p 00000000 fd:00 16798926 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT 7fff976f0000-7fff97700000 r--s 00000000 fd:00 8390669 /usr/lib64/gconv/gconv-modules.cache 7fff97700000-7fff97930000 r-xp 00000000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff97930000-7fff97940000 ---p 00230000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff97940000-7fff97950000 r--p 00230000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff97950000-7fff97960000 rw-p 00240000 fd:00 25167936 /usr/lib64/power8/libc-2.25.so 7fff97960000-7fff97970000 r--p 00000000 fd:00 16798925 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION 7fff97970000-7fff97990000 r-xp 00000000 00:00 0 [vdso] 7fff97990000-7fff979d0000 r-xp 00000000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fff979d0000-7fff979e0000 r--p 00030000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fff979e0000-7fff979f0000 rw-p 00040000 fd:00 8390329 /usr/lib64/ld-2.25.so 7fffdd110000-7fffdd140000 rw-p 00000000 00:00 0 [stack]