Out of Memory: Killed process ...

Billalabeitia, Jose Carlos (IndSys, GEPM) jc.billalabeitia at indsys.ge.com
Tue Mar 25 02:54:35 EST 2003


	Hi everybody:

		We have our custom PPCBoard that features
16 MB of RAM. The problem comes when writting files into the JFFS2
or even in the "ramfs", but in latter case it is less evident. What happens
is that the kernel kills some running processes because the system
runs out of memory.

	I don´t think that writting files is the cause of the problem, but
it reflects the "true" problem and it is that there is no enough memory.
We get messages from the kernel like

	"Out of Memory: Killed process ...."

and the memory available before writting files is more or less:

	500 Kb of free memory
	1.2 Mb of cached memory

and Linux starts killing processes when cached memory falls below 1 Mb.
AFAIK it is correct because the free memory is near the lowest limit allowed
by the kernel.

	There is another resource that plays an important role and it is the
time that Linux has for itself. Also we have RTAI and our RT tasks
control the time given for Linux. Now it is 6 ms out of 12 for Linux, but I
think
that the less time Linux has,  the more memory problems will appear, because

in some way memory-time resources are linked each other. Imagine that
RT tasks leave messages for Linux processes, for example, for writting data
in files; the less Linux takes the control the more writtings will need to
be done.

My questions are:

	1.- Do you think that this behavior is correct? Is the VFS, JFFS2 or
  	    RAMFS working badly (I don´t think so)? Is right the statement
that
	    when the kernel needs memory it may even kill Linux processes to
	    get some?

	2.- What are the criteria that the kernel takes into account
	     when killing processes? I mean, what processes are killed
	     first, and what are killed later? Is there any way from the
user
	     point of view to set the process priority in case of being
killed?
	     I mean, to set what process may be killed first and what later?

	3.- What are the minimum memory requirements for the system to
	     work fine? I think that there is three free memory thresholds
for Linux
	     and they are 1.5 MB, 1 MB and 500 Kb (worst case). So can we
	     conclude that if Linux has over 1.5 Mb of free memory the
system
	     health is good and that the memory problems may appear when
	     free memory is around 500 Kb?

	4.- Do you think that the less time Linux has for itself, the more
memory
	     problems?


	Any hint or advice will be welcome to solve this problem. If you
think that
some other things may have an impact on the problem, let me know.

							Thank you
								Billa


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list