gaps in process's virtual address space(/proc/pid/maps)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

As I see in my system, around 4 GB of virtual address space is mapped
to a process. Theoretically, CMIIW, I should be able to use 4GB of
virtual address space.

>From the output from /proc/30563/maps below, there exists a
significant gap or a hole from vma's end address 00978000 to another
vma's start address 08048000. Because of these gaps we'll not be able
utilize complete address space allocated to a process.
***************************************************************************
[bash: /usr2/vskrishn]$ ./test &
[1] 30563

==========================================================================
[bash: /usr2/vskrishn]$
[bash: /usr2/vskrishn]$ cat /proc/30563/maps
00835000-0084a000 r-xp 00000000 08:11 385942     /lib/ld-2.3.4.so
0084a000-0084b000 r--p 00015000 08:11 385942     /lib/ld-2.3.4.so
0084b000-0084c000 rw-p 00016000 08:11 385942     /lib/ld-2.3.4.so
0084e000-00972000 r-xp 00000000 08:11 386926     /lib/tls/libc-2.3.4.so
00972000-00973000 r--p 00124000 08:11 386926     /lib/tls/libc-2.3.4.so
00973000-00976000 rw-p 00125000 08:11 386926     /lib/tls/libc-2.3.4.so
00976000-00978000 rw-p 00976000 00:00 0
08048000-08049000 r-xp 00000000 00:1e 2191602    /usr2/vskrishn/test
08049000-0804a000 rw-p 00000000 00:1e 2191602    /usr2/vskrishn/test
b7ff2000-b7ff3000 rw-p b7ff2000 00:00 0
bff69000-c0000000 rw-p bff69000 00:00 0
ffffe000-fffff000 ---p 00000000 00:00 0
===========================================================================
[bash: /usr2/vskrishn]$ pmap 30563
30563:   ./test
00835000     84K r-x--  /lib/ld-2.3.4.so
0084a000      4K r----  /lib/ld-2.3.4.so
0084b000      4K rw---  /lib/ld-2.3.4.so
0084e000   1168K r-x--  /lib/tls/libc-2.3.4.so
00972000      4K r----  /lib/tls/libc-2.3.4.so
00973000     12K rw---  /lib/tls/libc-2.3.4.so
00976000      8K rw---    [ anon ]
08048000      4K r-x--  /usr2/vskrishn/test
08049000      4K rw---  /usr2/vskrishn/test
b7ff2000      4K rw---    [ anon ]
bff69000    604K rw---    [ stack ]
ffffe000      4K -----    [ anon ]
 total     1904K
[bash: /usr2/vskrishn]$
**********************************************************************

can any one help me out with

What are these gaps for?
why are those gaps formed?
Is there any way to optimize/reduce those gaps?
any reference to text/source which can clarify would be helpful too?


I hope the gap at the end refers to the Heap, so not bothered much about it.


thanks
-kris
PS: test.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
	sleep(30);
}

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux