2012-11-27 18:29:13

by Bernd Schubert

[permalink] [raw]
Subject: memory allocation: smap large "Size", but unused

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


2012-11-27 22:00:21

by David Rientjes

[permalink] [raw]
Subject: Re: memory allocation: smap large "Size", but unused

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.