Re: running of out memory => kernel crash

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

 



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

>Ok, so you don't have a /proc/pid/oom_score_adj, so you're using a kernel 
>that predates 2.6.36.
Yes, the srv machine that I posted those results, has kernel before 2.6.36



// 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 8:39 AM
Subject: Re: running of out memory => kernel crash

On Wed, 10 Aug 2011, Mahmood Naderan wrote:

> >If you're using cpusets or mempolicies, you must ensure that all tasks 
> >attached to either of them are not set to OOM_DISABLE.  It seems unlikely 
> >that you're using those, so it seems like a system-wide oom condition.
>  
> I didn't do that manually. What is the default behaviour? Does oom
> working or not?
> 

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).

> For a user process:
> 
> root@srv:~# cat /proc/18564/oom_score
> 9198
> root@srv:~# cat /proc/18564/oom_adj
> 0
> 

Ok, so you don't have a /proc/pid/oom_score_adj, so you're using a kernel 
that predates 2.6.36.

> And for "init" process:
> 
> root@srv:~# cat /proc/1/oom_score
> 17509
> root@srv:~# cat /proc/1/oom_adj
> 0
> 
> Based on my understandings, in an out of memory condition (oom),
> the init process is more eligible to be killed!!!!!!! Is that right?
> 

init is exempt from oom killing, it's oom_score is meaningless.

> Again I didn't get my answer yet:
> What is the default behavior of linux in an oom condition? If the default is,
> crash (kernel panic), then how can I change that in such a way to kill
> the hungry process?
> 

You either have /proc/sys/vm/panic_on_oom set or it's killing a thread 
that is taking down the entire machine.  If it's the latter, then please 
capture the kernel log and post it as Randy suggested.

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