/proc/<pid>/status: VmSize

From: Vladimir Zidar
Date: Fri Nov 28 2003 - 14:14:41 EST


Hola,

We are running kernel 2.4.22 on i686 SMP box.
Inside are two Intel(R) XEON(TM) CPU 2.00GHz, with hyperthreading
enabled, so /proc/cpuinfo shows four CPUs.
This box has 4GB of RAM installed, and 2GB of swap space.

The problems we are experiencing are related to heavy usage of VM.

We have multithreaded application that uses lots of mmap()-ed memory
(one big file in size around 700 MB, and lots of anonymous mappings to
/dev/zero in average size between 64k and 1MB). This program sometimes
grow up to 1.6 GB in size (SIZE that is shown by top utility).. But,
sometimes /proc/<pid>/status shows VmSize with more than 2GB, where at
the same time top and other /proc/<pid> entries show 1.6GB. This somehow
affects pthread_create() call which fails then.

The question is, how can happen that different numbers are shown in
proc filesystem, for same pid ? (which is part of multithreaded
process), and why pthread_create() fails ? Is there maybe 2GB limit on
memory size that single process can manage on i386 ? Also, when such
program crashes, it creates 2GB core file, which is not completly usable
from gdb. (gdb complains that some addresses are not accessible)..
I suspect that this has something to do with amount of RAM (4GB), but
we are still trying to get this server tested with only 2GB running in
standard (not paged) mode.. but this can take some time, since it is one
of our production machines.


Anybody, idea ?

Thanks.


--

-
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/