On 06/01, KOSAKI Motohiro wrote: > > @@ -88,6 +88,7 @@ unsigned long badness(struct task_struct *p, unsigned long uptime) > { > unsigned long points, cpu_time, run_time; > struct task_struct *c; > + struct task_struct *t = p; This initialization should be moved down to > + do { > + list_for_each_entry(c, &t->children, sibling) { > + child = find_lock_task_mm(c); > + if (child) { > + if (child->mm != p->mm) > + points += child->mm->total_vm/2 + 1; > + task_unlock(child); > + } > } > - } > + } while_each_thread(p, t); this loop. We have "p = find_lock_task_mm(p)" in between which can change p. Apart from this, I think the whole series is nice. 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>