Re: running of out memory => kernel crash

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

 



>Despite it's name, kswapd is still active, it's trying to reclaim memory 
>to prevent having to kill a process as the last resort.
 
I understand what you said, but I did two scenarios:
1- I wrote a simple C++ program that "new" a lot of pointers.
   for ( int i = 0; i < n; i++ ) {
     for ( int j = 0; j < n; j++ ) {
       for ( int k = 0; k < n; k++ ) {
         for ( int l = 0; l < n; l++ ) {
           double *ptr1 = new double[n*i];
           double *ptr2 = new double[n*j];
     }}}}

When I run the program, it ill eat the memory and when it reaches the
maximum ram, it get killed and I saw  message on terminal:

mahmood@vpc:~$ ./leak
Killed

for this scenario, there is no kswapd process running. As it eats the memory
suddenly it get killed.

2- There is 300MB ram. I opened an application saw that
free space reduced to 100MB, then another application reduced the free
space to 30MB. Another application reduced to 4MB. Now the "kswapd"
is running with a lot of disk activity and tries to keep free space at 4MB.
In this scenario, No application is killed.

The question is why in one scenario, the application is killed and in one
scenario, kswapd is running.

I think in the first scenario, the oom_score is calculated more rapidly 
than the second, so immediately is get killed. So kswapd has no chance 
to run because application is killed sooner. In the second scenario, 
kswapd has time to run first. So it will try to free some spaces. However 
since the disk activity is very high, the response time is very high
so the oom_score is calculated lately than first scenario.

Is my understandings correct?


>If /proc/sys/vm/panic_on_oom is not set, as previously mentioned, then 
>we'll need the kernel log to diagnose this further.
I checked that and it is 0. I am trying to reproduce the problem to get some logs


// Naderan *Mahmood;


----- Original Message -----
From: David Rientjes <rientjes@xxxxxxxxxx>
To: Mahmood Naderan <nt_mahmood@xxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxx>; """linux-kernel@xxxxxxxxxxxxxxx""" <linux-kernel@xxxxxxxxxxxxxxx>; ""linux-mm@xxxxxxxxx"" <linux-mm@xxxxxxxxx>
Sent: Thursday, August 11, 2011 11:43 AM
Subject: Re: running of out memory => kernel crash

On Thu, 11 Aug 2011, Mahmood Naderan wrote:

> >The default behavior is to kill all eligible and unkillable threads until 
> >there are none left to sacrifice (i.e. all kthreads and OOM_DISABLE).
>  
> In a simple test with virtualbox, I reduced the amount of ram to 300MB. 
> Then I ran "swapoff -a" and opened some applications. I noticed that the free
> spaces is kept around 2-3MB and "kswapd" is running. Also I saw that disk
> activity was very high. 
> That mean although "swap" partition is turned off, "kswapd" was trying to do
> something. I wonder how that behavior can be explained?
> 

Despite it's name, kswapd is still active, it's trying to reclaim memory 
to prevent having to kill a process as the last resort.

If /proc/sys/vm/panic_on_oom is not set, as previously mentioned, then 
we'll need the kernel log to diagnose this further.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]