Hello,
I'm just investigating why a user space program has a rather large
VmSize, but small VmRSS size. Looking into /proc/$pid/smaps I notice
several areas with an size of about 64MB, but otherwise that area is
unused. So far I did not find a way how to reproduce that with malloc()
calls.
7ffd34021000-7ffd38000000 ---p 00000000 00:00 0
Size: 65404 kB
Rss: 0 kB
Pss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 0 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Any idea how to do such an allocation from user space?
Thanks,
Bernd
On Tue, 27 Nov 2012, Bernd Schubert wrote:
> I'm just investigating why a user space program has a rather large VmSize, but
> small VmRSS size. Looking into /proc/$pid/smaps I notice several areas with an
> size of about 64MB, but otherwise that area is unused. So far I did not find a
> way how to reproduce that with malloc() calls.
>
> 7ffd34021000-7ffd38000000 ---p 00000000 00:00 0
> Size: 65404 kB
> Rss: 0 kB
What happens if you do
sbrk(65404 << 10);
sleep(1000);
and check /proc/pid/smaps? Ah, a memory range need not have any pages in
memory.