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

Reply via email to