Oleg Nesterov
c027a474a6
oom: task->mm == NULL doesn't mean the memory was freed
...
exit_mm() sets ->mm == NULL then it does mmput()->exit_mmap() which
frees the memory.
However select_bad_process() checks ->mm != NULL before TIF_MEMDIE,
so it continues to kill other tasks even if we have the oom-killed
task freeing its memory.
Change select_bad_process() to check ->mm after TIF_MEMDIE, but skip
the tasks which have already passed exit_notify() to ensure a zombie
with TIF_MEMDIE set can't block oom-killer. Alternatively we could
probably clear TIF_MEMDIE after exit_mmap().
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-08-01 15:24:12 -10:00
..
2011-07-26 10:39:54 -07:00
2011-03-23 19:47:19 -07:00
2010-09-09 18:57:25 -07:00
2011-05-26 10:01:36 -06:00
2011-06-15 20:04:02 -07:00
2011-07-25 20:57:14 -07:00
2011-07-26 16:49:46 -07:00
2011-05-25 08:39:18 -07:00
2011-07-26 10:39:54 -07:00
2011-05-26 09:20:31 -07:00
2010-10-27 18:03:05 -07:00
2011-07-25 20:57:09 -07:00
2011-07-25 20:57:09 -07:00
2011-03-31 11:26:23 -03:00
2011-07-26 16:49:47 -07:00
2011-05-25 08:39:05 -07:00
2011-06-10 14:47:52 +02:00
2011-03-22 17:44:02 -07:00
2011-01-27 18:31:51 +00:00
2011-07-26 16:49:47 -07:00
2011-06-15 20:04:02 -07:00
2011-05-25 19:56:23 -04:00
2011-07-20 20:47:46 -04:00
2011-05-26 10:01:36 -06:00
2011-07-25 20:57:09 -07:00
2011-07-26 16:49:43 -07:00
2011-07-25 20:57:08 -07:00
2011-06-27 18:00:13 -07:00
2011-07-25 20:57:11 -07:00
2011-07-26 16:49:43 -07:00
2011-06-16 15:01:24 -07:00
2011-01-13 17:32:44 -08:00
2011-05-26 09:20:31 -07:00
2011-07-25 20:57:09 -07:00
2011-01-13 17:32:46 -08:00
2011-01-13 17:32:31 -08:00
2011-01-13 17:32:44 -08:00
2011-05-25 08:39:18 -07:00
2010-05-21 18:31:21 -04:00
2011-05-25 08:39:31 -07:00
2011-07-25 20:57:09 -07:00
2011-08-01 15:24:12 -10:00
2011-07-26 16:49:46 -07:00
2011-07-25 20:57:09 -07:00
2011-03-10 08:52:27 +01:00
2010-10-26 16:52:11 -07:00
2011-07-26 10:39:54 -07:00
2011-07-25 20:57:09 -07:00
2010-10-02 10:28:42 +03:00
2011-01-13 17:32:34 -08:00
2011-05-24 11:53:42 -07:00
2011-01-26 10:49:58 +10:00
2011-05-20 12:50:29 -07:00
2011-05-25 08:39:25 -07:00
2011-07-26 10:39:54 -07:00
2011-07-25 21:00:19 -07:00
2011-07-31 18:14:21 +03:00
2011-07-26 16:49:47 -07:00
2011-07-30 08:21:48 -10:00
2010-11-01 15:38:34 -04:00
2011-07-25 20:57:07 -07:00
2011-03-10 08:52:07 +01:00
2011-05-25 08:39:37 -07:00
2011-07-20 20:47:50 -04:00
2011-07-25 20:57:08 -07:00
2011-07-25 20:57:10 -07:00
2011-05-25 08:39:05 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:42 -07:00
2011-05-25 08:39:09 -07:00