Thread (44 messages) 44 messages, 7 authors, 2011-09-27

Re: [PATCH] oom: skip frozen tasks

From: Michal Hocko <hidden>
Date: 2011-08-24 10:19:32
Also in: lkml

On Tue 23-08-11 13:18:14, David Rientjes wrote:
On Tue, 23 Aug 2011, Konstantin Khlebnikov wrote:
quoted
All frozen tasks are unkillable, and if one of them has TIF_MEMDIE
we must kill something else to avoid deadlock. After this patch
select_bad_process() will skip frozen task before checking TIF_MEMDIE.
The caveat is that if the task in the refrigerator is not OOM_DISABLE and 
there are no other eligible tasks (system wide, in the cpuset, or in the 
memcg) to kill, then the machine will panic as a result of this when, in 
the past, we would simply issue the SIGKILL and keep looping in the page 
allocator until it is thawed.
mem_cgroup_out_of_memory doesn't panic if nothing has been selected. We
will loop in the charge&reclaim path until somebody frees some memory.
So you may actually be trading a stall waiting for this thread to thaw for 
what would now be a panic, and that's not clearly better to me.
When we are in the global OOM condition then you are right, we have a
higher chance to panic. I still find the patch an improvement because
encountering a frozen task and looping over it without any progress
(even though there are other tasks that could be killed) is more
probable than having no killable task at all.
On non-NUMA machines there is even not a big chance that somebody would
be able to thaw a task as the system is already on knees.

-- 
Michal Hocko
SUSE Labs
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9    
Czech Republic

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  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=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help