linkhuge_rw test case failed when indicates HUGETLB_ELFMAP=R/W/RW. Seems the problem was caused by the vaddr of LOAD segment is 0x0000000 which should be 0x20000000 in this case.
And this problem happened on gcc-5 and gcc-6 now. But it works on gcc-4.9. root@ltcalpine2-lp9:~/libhugetlbfs# HUGETLB_VERBOSE=99 HUGETLB_DEBUG=yes LD_LIBRARY_PATH=./obj64 HUGETLB_ELFMAP=R ./tests/obj64/linkhuge_rw libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Found pagesize 16384 kB libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Detected page sizes: libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Size: 16384 kB (default) Mount: /dev/hugepages libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Parsed kernel version: [4] . [9] . [0] libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Feature private_reservations is present in this kernel libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Feature noreserve_safe is present in this kernel libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Feature map_hugetlb is present in this kernel libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Kernel has MAP_PRIVATE reservations. Disabling heap prefaulting. libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Kernel supports MAP_HUGETLB libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: HUGETLB_SHARE=0, sharing disabled libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: HUGETLB_NO_RESERVE=no, reservations enabled libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Segment 0 (phdr 2): 0-0x133d4 (filesz=0x133d4) (prot = 0x5) libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: DEBUG: Total memsz = 0x133d4, memsz of largest segment = 0x133d4 libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: libhugetlbfs version: 2.20 libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13003]: INFO: Mapped hugeseg at 0x3effff000000. Copying 0x133d4 bytes and 0 extra bytes from (nil)...libhugetlbfs [ltcalpine2-lp9.aus.stglabs.ibm.com:13002]: INFO: Prepare succeeded Starting testcase "./tests/obj64/linkhuge_rw", pid 13002 HUGETLB_ELFMAP=R entry: small_data, data: 0x61e20010, writable: 1 entry: small_data, data: 0x61e20010, is_huge: 0 entry: big_data, data: 0x61e10010, writable: 1 entry: big_data, data: 0x61e10010, is_huge: 0 entry: small_bss, data: 0x61e30124, writable: 1 entry: small_bss, data: 0x61e30124, is_huge: 0 entry: big_bss, data: 0x61e20124, writable: 1 entry: big_bss, data: 0x61e20124, is_huge: 0 entry: small_const, data: 0x41e22e2c, writable: 0 entry: small_const, data: 0x41e22e2c, is_huge: 0 entry: big_const, data: 0x41e12e2c, writable: 0 entry: big_const, data: 0x41e12e2c, is_huge: 0 entry: static_func, data: 0x41e11cb0, writable: 0 entry: static_func, data: 0x41e11834, is_huge: 0 entry: global_func, data: 0x41e11c90, writable: 0 entry: global_func, data: 0x41e11834, is_huge: 0 Hugepages used for: FAIL small_const is not hugepage /proc/self/maps: 00000000-01000000 r-xp 00000000 00:26 72952 /dev/hugepages/libhugetlbfs.tmp.PVyqzm (deleted) 20000000-20020000 r-xp 00000000 08:02 28317083 /root/libhugetlbfs/tests/obj64/linkhuge_rw 3fff0000-40000000 r--p 0fff0000 08:02 28317083 /root/libhugetlbfs/tests/obj64/linkhuge_rw 40000000-40020000 rw-p 10000000 08:02 28317083 /root/libhugetlbfs/tests/obj64/linkhuge_rw 40020000-40070000 rw-p 00000000 00:00 0 [heap] 3fffb7cb0000-3fffb7cd0000 r-xp 00000000 08:02 28312628 /root/libhugetlbfs/obj64/libhugetlbfs.so 3fffb7cd0000-3fffb7ce0000 r--p 00010000 08:02 28312628 /root/libhugetlbfs/obj64/libhugetlbfs.so 3fffb7ce0000-3fffb7cf0000 rw-p 00020000 08:02 28312628 /root/libhugetlbfs/obj64/libhugetlbfs.so 3fffb7cf0000-3fffb7ea0000 r-xp 00000000 08:02 33292334 /lib/powerpc64le-linux-gnu/libc-2.24.so 3fffb7ea0000-3fffb7eb0000 ---p 001b0000 08:02 33292334 /lib/powerpc64le-linux-gnu/libc-2.24.so 3fffb7eb0000-3fffb7ec0000 r--p 001b0000 08:02 33292334 /lib/powerpc64le-linux-gnu/libc-2.24.so 3fffb7ec0000-3fffb7ed0000 rw-p 001c0000 08:02 33292334 /lib/powerpc64le-linux-gnu/libc-2.24.so 3fffb7ed0000-3fffb7ee0000 r-xp 00000000 08:02 28312704 /root/libhugetlbfs/obj64/libhugetlbfs_privutils.so 3fffb7ee0000-3fffb7ef0000 r--p 00000000 08:02 28312704 /root/libhugetlbfs/obj64/libhugetlbfs_privutils.so 3fffb7ef0000-3fffb7f00000 rw-p 00010000 08:02 28312704 /root/libhugetlbfs/obj64/libhugetlbfs_privutils.so 3fffb7f00000-3fffb7f10000 r-xp 00000000 08:02 33292350 /lib/powerpc64le-linux-gnu/libdl-2.24.so 3fffb7f10000-3fffb7f20000 r--p 00000000 08:02 33292350 /lib/powerpc64le-linux-gnu/libdl-2.24.so 3fffb7f20000-3fffb7f30000 rw-p 00010000 08:02 33292350 /lib/powerpc64le-linux-gnu/libdl-2.24.so 3fffb7f30000-3fffb7f50000 r-xp 00000000 08:02 33293168 /lib/powerpc64le-linux-gnu/libpthread-2.24.so 3fffb7f50000-3fffb7f60000 r--p 00010000 08:02 33293168 /lib/powerpc64le-linux-gnu/libpthread-2.24.so 3fffb7f60000-3fffb7f70000 rw-p 00020000 08:02 33293168 /lib/powerpc64le-linux-gnu/libpthread-2.24.so 3fffb7f80000-3fffb7fa0000 r-xp 00000000 00:00 0 [vdso] 3fffb7fa0000-3fffb7fe0000 r-xp 00000000 08:02 33292318 /lib/powerpc64le-linux-gnu/ld-2.24.so 3fffb7fe0000-3fffb7ff0000 r--p 00030000 08:02 33292318 /lib/powerpc64le-linux-gnu/ld-2.24.so 3fffb7ff0000-3fffb8000000 rw-p 00040000 08:02 33292318 /lib/powerpc64le-linux-gnu/ld-2.24.so 3ffffffd0000-400000000000 rw-p 00000000 00:00 0 [stack] objdump: Program Header: PHDR off 0x0000000000000040 vaddr 0x0000000000000040 paddr 0x0000000000000040 align 2**3 filesz 0x00000000000001c0 memsz 0x00000000000001c0 flags r-x INTERP off 0x0000000000000200 vaddr 0x0000000000000200 paddr 0x0000000000000200 align 2**0 filesz 0x0000000000000011 memsz 0x0000000000000011 flags r-- LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**28 filesz 0x00000000000133d4 memsz 0x00000000000133d4 flags r-x LOAD off 0x000000000ffffb50 vaddr 0x000000001ffffb50 paddr 0x000000001ffffb50 align 2**28 filesz 0x00000000000105cc memsz 0x00000000000205e0 flags rw- DYNAMIC off 0x000000000ffffb68 vaddr 0x000000001ffffb68 paddr 0x000000001ffffb68 align 2**3 filesz 0x0000000000000260 memsz 0x0000000000000260 flags rw- NOTE off 0x0000000000000214 vaddr 0x0000000000000214 paddr 0x0000000000000214 align 2**2 filesz 0x0000000000000044 memsz 0x0000000000000044 flags r-- STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4 filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw- RELRO off 0x000000000ffffb50 vaddr 0x000000001ffffb50 paddr 0x000000001ffffb50 align 2**0 filesz 0x00000000000004b0 memsz 0x00000000000004b0 flags r-- ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel