On 03/30, David Rientjes wrote: > > On Tue, 30 Mar 2010, Oleg Nesterov wrote: > > > proc_oom_score(task) have a reference to task_struct, but that is all. > > If this task was already released before we take tasklist_lock > > > > - we can't use task->group_leader, it points to nowhere > > > > - it is not safe to call badness() even if this task is > > ->group_leader, has_intersects_mems_allowed() assumes > > it is safe to iterate over ->thread_group list. > > > > Add the pid_alive() check to ensure __unhash_process() was not called. > > > > Note: I think we shouldn't use ->group_leader, badness() should return > > the same result for any sub-thread. However this is not true currently, > > and I think that ->mm check and list_for_each_entry(p->children) in > > badness are not right. > > > > I think it would be better to just use task and not task->group_leader. Sure, agreed. I preserved ->group_leader just because I didn't understand why the current code doesn't use task. But note that pid_alive() is still needed. I'll check the code in -mm and resend. Oleg. -- 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>