On Mon, Jun 21, 2010 at 08:45:45PM +0900, KOSAKI Motohiro wrote: > > On Thu, 17 Jun 2010, KOSAKI Motohiro wrote: > > > > > When oom_kill_allocating_task is enabled, an argument task of > > > oom_kill_process is not selected by select_bad_process(), It's > > > just out_of_memory() caller task. It mean the task can be > > > unkillable. check it first. > > > > > > > This should be unnecessary if oom_kill_process() appropriately returns > > non-zero when it cannot kill a task. What problem are you addressing with > > this fix? > > oom_kill_process() only check its children are unkillable, not its own. > To add check oom_kill_process() also solve the issue. as my previous patch does. > but Minchan pointed out it's unnecessary. because when !oom_kill_allocating_task > case, we have the same check in select_bad_process(). > > > If kthread doesn't use other process's mm, oom_kill_process can return non-zero. and it might be no problem. but let's consider following case that kthread use use_mm. if (oom_kill_allocating_task) oom_kill_process pr_err("kill process.."); <-- false alarm oom_kill_task find_lock_task_mm if kthread use use_mm kill kernel thread Yes. it's a just theory that kthread use use_mm and is selected as victim. But although kthread doesn't use use_mm, oom_kill_process emits false alarm. As a matter of fact, it doesn't kill itself or sacrifice child. I think victim process selection should be done before calling oom_kill_process. oom_kill_process and oom_kill_task's role is just to try to kill the process or process's children by best effort as function's name. -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>