Re: [patch] oom: give current access to memory reserves if it has been killed

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: David Rientjes
Date: Wednesday, March 31, 2010 - 4:48 pm

On Thu, 1 Apr 2010, Oleg Nesterov wrote:


Ok, and it's possible during the tasklist scan if current is PF_EXITING 
and that gets passed to oom_kill_process(), so we need the following 
patch.  Can I have your acked-by and then I'll propose it to Andrew with a 
follow-up that merges __oom_kill_task() into oom_kill_task() since it only 
has one caller now anyway?

 [ Both of these situations will be current since the oom killer is a 
   no-op whenever another task is found to be PF_EXITING and
   oom_kill_process() wouldn't get called with any other thread unless
   oom_kill_quick is enabled or its VM_FAULT_OOM in which cases we kill 
   current as well. ]

Thanks Oleg.
---
 mm/oom_kill.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/oom_kill.c b/mm/oom_kill.c
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -459,7 +459,7 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
 	 * its children or threads, just set TIF_MEMDIE so it can die quickly
 	 */
 	if (p->flags & PF_EXITING) {
-		__oom_kill_task(p);
+		set_tsk_thread_flag(p, TIF_MEMDIE);
 		return 0;
 	}
 
@@ -686,7 +686,7 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask,
 	 * its memory.
 	 */
 	if (fatal_signal_pending(current)) {
-		__oom_kill_task(current);
+		set_tsk_thread_flag(current, TIF_MEMDIE);
 		return;
 	}
 
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] oom killer: break from infinite loop, Anfei Zhou, (Wed Mar 24, 9:25 am)
Re: [PATCH] oom killer: break from infinite loop, KOSAKI Motohiro, (Wed Mar 24, 7:51 pm)
Re: [PATCH] oom killer: break from infinite loop, Andrew Morton, (Fri Mar 26, 3:08 pm)
Re: [PATCH] oom killer: break from infinite loop, Oleg Nesterov, (Fri Mar 26, 3:33 pm)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Sat Mar 27, 7:46 pm)
Re: [PATCH] oom killer: break from infinite loop, Oleg Nesterov, (Sun Mar 28, 9:28 am)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Sun Mar 28, 2:21 pm)
Re: [PATCH] oom killer: break from infinite loop, Oleg Nesterov, (Mon Mar 29, 4:21 am)
Re: [PATCH] oom killer: break from infinite loop, Oleg Nesterov, (Mon Mar 29, 4:46 am)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Mon Mar 29, 1:01 pm)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Tue Mar 30, 1:29 pm)
Re: [PATCH] oom killer: break from infinite loop, KAMEZAWA Hiroyuki, (Tue Mar 30, 5:57 pm)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Tue Mar 30, 11:07 pm)
Re: [PATCH] oom killer: break from infinite loop, KAMEZAWA Hiroyuki, (Tue Mar 30, 11:13 pm)
Re: [PATCH] oom killer: break from infinite loop, Balbir Singh, (Tue Mar 30, 11:30 pm)
Re: [PATCH] oom killer: break from infinite loop, KAMEZAWA Hiroyuki, (Tue Mar 30, 11:31 pm)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Tue Mar 30, 11:32 pm)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Wed Mar 31, 12:04 am)
Re: [patch] oom: give current access to memory reserves if ..., David Rientjes, (Wed Mar 31, 4:48 pm)
Re: [PATCH] oom killer: break from infinite loop, Mel Gorman, (Fri Apr 2, 3:17 am)
[PATCH -mm 0/4] oom: linux has threads, Oleg Nesterov, (Fri Apr 2, 11:30 am)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Sun Apr 4, 4:26 pm)
Re: [PATCH] oom killer: break from infinite loop, Mel Gorman, (Mon Apr 5, 3:47 am)
Re: [PATCH] oom killer: break from infinite loop, David Rientjes, (Tue Apr 6, 3:40 pm)