lkml.org 
[lkml]   [2010]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/5] oom: Fix child process iteration properly
    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.



    \
     
     \ /
      Last update: 2010-06-01 21:31    [W:0.022 / U:0.092 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site