Question [heap] section on /proc/maps

From: Ronny Meeus
Date: Wed Feb 15 2012 - 08:23:53 EST


Hello

I have a question about the [heap] section in the /proc/x/maps file.

I tracked all allocations of my build using the mtrace mechanism
provided by the libc library.
The total amount of memory that my application allocates is something
like 15Mb.
If I look to the maps information in the /proc, I see that almost 35Mb
is reported in the [heap] section.

Please note that I started the tracking (call to mtrace();) only in
the beginning of the main so that are most probably some calls to
malloc done before this but I assume that this is not so much.

Can somebody help me to identify where the 20Mb of heap memory is
allocated/used for?

Next to this there are also a large number of areas (from 4802f000
till 494d1000) in the map below. This is another 21Mb of memory that I
cannot explain.
Many thanks.

# cat /proc/24160/maps
00100000-00102000 r-xp 00000000 00:00 0 [vdso]
0fb13000-0fb1e000 r-xp 00000000 00:01 26 /lib/libnss_files-2.10.1.so
0fb1e000-0fb2d000 ---p 0000b000 00:01 26 /lib/libnss_files-2.10.1.so
0fb2d000-0fb2e000 r--p 0000a000 00:01 26 /lib/libnss_files-2.10.1.so
0fb2e000-0fb2f000 rwxp 0000b000 00:01 26 /lib/libnss_files-2.10.1.so
0fb3f000-0fb54000 r-xp 00000000 00:01 66 /lib/libpthread-2.10.1.so
0fb54000-0fb63000 ---p 00015000 00:01 66 /lib/libpthread-2.10.1.so
0fb63000-0fb64000 r--p 00014000 00:01 66 /lib/libpthread-2.10.1.so
0fb64000-0fb65000 rwxp 00015000 00:01 66 /lib/libpthread-2.10.1.so
0fb65000-0fb67000 rwxp 00000000 00:00 0
0fb77000-0fcdf000 r-xp 00000000 00:01 73 /lib/libc-2.10.1.so
0fcdf000-0fcef000 ---p 00168000 00:01 73 /lib/libc-2.10.1.so
0fcef000-0fcf1000 r--p 00168000 00:01 73 /lib/libc-2.10.1.so
0fcf1000-0fcf4000 rwxp 0016a000 00:01 73 /lib/libc-2.10.1.so
0fcf4000-0fcf7000 rwxp 00000000 00:00 0
0fd07000-0fd1e000 r-xp 00000000 00:01 72 /lib/libgcc_s.so.1
0fd1e000-0fd2d000 ---p 00017000 00:01 72 /lib/libgcc_s.so.1
0fd2d000-0fd2e000 r--p 00016000 00:01 72 /lib/libgcc_s.so.1
0fd2e000-0fd2f000 rwxp 00017000 00:01 72 /lib/libgcc_s.so.1
0fd3f000-0fe2b000 r-xp 00000000 00:01 30 /lib/libm-2.10.1.so
0fe2b000-0fe3a000 ---p 000ec000 00:01 30 /lib/libm-2.10.1.so
0fe3a000-0fe3b000 r--p 000eb000 00:01 30 /lib/libm-2.10.1.so
0fe3b000-0fe3c000 rwxp 000ec000 00:01 30 /lib/libm-2.10.1.so
0fe4c000-0ff2f000 r-xp 00000000 00:01 535 /usr/lib/libstdc++.so.6.0.13
0ff2f000-0ff3f000 ---p 000e3000 00:01 535 /usr/lib/libstdc++.so.6.0.13
0ff3f000-0ff43000 r--p 000e3000 00:01 535 /usr/lib/libstdc++.so.6.0.13
0ff43000-0ff44000 rwxp 000e7000 00:01 535 /usr/lib/libstdc++.so.6.0.13
0ff44000-0ff4d000 rwxp 00000000 00:00 0
0ff5d000-0ff60000 r-xp 00000000 00:01 544 /usr/lib/libUIO.so.0.0.0
0ff60000-0ff6f000 ---p 00003000 00:01 544 /usr/lib/libUIO.so.0.0.0
0ff6f000-0ff70000 r--p 00002000 00:01 544 /usr/lib/libUIO.so.0.0.0
0ff70000-0ff71000 rwxp 00003000 00:01 544 /usr/lib/libUIO.so.0.0.0
0ff81000-0ff88000 r-xp 00000000 00:01 25 /lib/librt-2.10.1.so
0ff88000-0ff97000 ---p 00007000 00:01 25 /lib/librt-2.10.1.so
0ff97000-0ff98000 r--p 00006000 00:01 25 /lib/librt-2.10.1.so
0ff98000-0ff99000 rwxp 00007000 00:01 25 /lib/librt-2.10.1.so
0ffa9000-0ffb4000 r-xp 00000000 00:01 546
/usr/lib/libcopperplate.so.0.0.0
0ffb4000-0ffc4000 ---p 0000b000 00:01 546
/usr/lib/libcopperplate.so.0.0.0
0ffc4000-0ffc5000 r--p 0000b000 00:01 546
/usr/lib/libcopperplate.so.0.0.0
0ffc5000-0ffc6000 rwxp 0000c000 00:01 546
/usr/lib/libcopperplate.so.0.0.0
0ffd6000-0ffdd000 r-xp 00000000 00:01 571 /usr/lib/libpsos.so.0.0.0
0ffdd000-0ffec000 ---p 00007000 00:01 571 /usr/lib/libpsos.so.0.0.0
0ffec000-0ffed000 r--p 00006000 00:01 571 /usr/lib/libpsos.so.0.0.0
0ffed000-0ffee000 rwxp 00007000 00:01 571 /usr/lib/libpsos.so.0.0.0
0ffee000-0fff0000 rwxp 00000000 00:00 0
10000000-10300000 r-xp 00000000 00:01 62595
/isam/user/isam_nt_app.nostrip.exe
10300000-10301000 r--p 00300000 00:01 62595
/isam/user/isam_nt_app.nostrip.exe
10301000-10305000 rwxp 00301000 00:01 62595
/isam/user/isam_nt_app.nostrip.exe
10305000-123dd000 rwxp 00000000 00:00 0 [heap]
48000000-4801d000 r-xp 00000000 00:01 78 /lib/ld-2.10.1.so
4801d000-4801f000 rw-p 00000000 00:00 0
4801f000-48022000 rw-p 00000000 00:00 0
4802d000-4802e000 r--p 0001d000 00:01 78 /lib/ld-2.10.1.so
4802e000-4802f000 rwxp 0001e000 00:01 78 /lib/ld-2.10.1.so
4802f000-48030000 ---p 00000000 00:00 0
48030000-480af000 rw-p 00000000 00:00 0
480af000-480b0000 ---p 00000000 00:00 0
480b0000-48ed1000 rw-p 00000000 00:00 0
48ed1000-48ed2000 ---p 00000000 00:00 0
48ed2000-48ef1000 rw-p 00000000 00:00 0
48ef1000-48ef2000 ---p 00000000 00:00 0
48ef2000-48f11000 rw-p 00000000 00:00 0
48f11000-48f12000 ---p 00000000 00:00 0
48f12000-48f31000 rw-p 00000000 00:00 0
48f31000-48f32000 ---p 00000000 00:00 0
48f32000-48f51000 rw-p 00000000 00:00 0
48f51000-48f52000 ---p 00000000 00:00 0
48f52000-48f71000 rw-p 00000000 00:00 0
48f71000-48f72000 ---p 00000000 00:00 0
48f72000-48f91000 rw-p 00000000 00:00 0
48f91000-48f92000 ---p 00000000 00:00 0
48f92000-48fb1000 rw-p 00000000 00:00 0
48fb1000-48fb2000 ---p 00000000 00:00 0
48fb2000-48fd1000 rw-p 00000000 00:00 0
48fd1000-48fd2000 ---p 00000000 00:00 0
48fd2000-48ff1000 rw-p 00000000 00:00 0
48ff1000-48ff2000 ---p 00000000 00:00 0
48ff2000-49011000 rw-p 00000000 00:00 0
49011000-49012000 ---p 00000000 00:00 0
49012000-49031000 rw-p 00000000 00:00 0
49031000-49032000 ---p 00000000 00:00 0
49032000-49051000 rw-p 00000000 00:00 0
49051000-49052000 ---p 00000000 00:00 0
49052000-49071000 rw-p 00000000 00:00 0
49071000-49072000 ---p 00000000 00:00 0
49072000-49091000 rw-p 00000000 00:00 0
49091000-49092000 ---p 00000000 00:00 0
49092000-490b1000 rw-p 00000000 00:00 0
490b1000-490b2000 ---p 00000000 00:00 0
490b2000-490d1000 rw-p 00000000 00:00 0
490d1000-490d2000 ---p 00000000 00:00 0
490d2000-490f1000 rw-p 00000000 00:00 0
490f1000-490f2000 ---p 00000000 00:00 0
490f2000-49111000 rw-p 00000000 00:00 0
49111000-49112000 ---p 00000000 00:00 0
49112000-49131000 rw-p 00000000 00:00 0
49131000-49132000 ---p 00000000 00:00 0
49132000-49151000 rw-p 00000000 00:00 0
49151000-49152000 ---p 00000000 00:00 0
49152000-49351000 rw-p 00000000 00:00 0
49351000-49352000 ---p 00000000 00:00 0
49352000-49371000 rw-p 00000000 00:00 0
49371000-49372000 ---p 00000000 00:00 0
49372000-49391000 rw-p 00000000 00:00 0
49391000-49392000 ---p 00000000 00:00 0
49392000-493b1000 rw-p 00000000 00:00 0
493b1000-493b2000 ---p 00000000 00:00 0
493b2000-493d1000 rw-p 00000000 00:00 0
493d1000-493d2000 ---p 00000000 00:00 0
493d2000-493f1000 rw-p 00000000 00:00 0
493f1000-493f2000 ---p 00000000 00:00 0
493f2000-49411000 rw-p 00000000 00:00 0
49411000-49412000 ---p 00000000 00:00 0
49412000-49431000 rw-p 00000000 00:00 0
49431000-49432000 ---p 00000000 00:00 0
49432000-49451000 rw-p 00000000 00:00 0
49451000-49452000 ---p 00000000 00:00 0
49452000-49471000 rw-p 00000000 00:00 0
49471000-49472000 ---p 00000000 00:00 0
49472000-49491000 rw-p 00000000 00:00 0
49491000-49492000 ---p 00000000 00:00 0
49492000-494b1000 rw-p 00000000 00:00 0
494b1000-494b2000 ---p 00000000 00:00 0
494b2000-494d1000 rw-p 00000000 00:00 0
a0000000-a2000000 rw-s 7e000000 00:01 265 /dev/mem
bff5b000-bff7c000 rw-p 00000000 00:00 0 [stack]


Best regards,
Ronny
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/