lkml.org 
[lkml]   [2010]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] exit: fix oops in sync_mm_rss
    On Wed, 31 Mar 2010 10:57:18 +0900
    Minchan Kim <minchan.kim@gmail.com> wrote:

    > On Wed, Mar 31, 2010 at 9:41 AM, KAMEZAWA Hiroyuki

    > > Doesn't make sense ?
    > >
    >
    > Nitpick.
    > How about moving sync_mm_rss into after check !mm of exit_mm?
    >
    Hmm.
    ==
    sync_mm_rss(tsk, tsk->mm);
    group_dead = atomic_dec_and_test(&tsk->signal->live);
    if (group_dead) {
    hrtimer_cancel(&tsk->signal->real_timer);
    exit_itimers(tsk->signal);
    if (tsk->mm)
    setmax_mm_hiwater_rss(&tsk->signal->maxrss, tsk->mm); ---(**)
    }
    acct_collect(code, group_dead);
    if (group_dead)
    tty_audit_exit();
    if (unlikely(tsk->audit_context))
    audit_free(tsk);

    tsk->exit_code = code;
    taskstats_exit(tsk, group_dead); --------(*)

    exit_mm(tsk);
    ==
    task_acct routine has to handle mm information (*).
    So, we have to sync somewhere before exit_mm() or tsk->mm goes to NULL.

    I think taskstat is an only acct hook which gatheres mm's rss information
    but I placed sync_mm_rss() before all accounting routine.
    Anyway, sync_mm_rss() should be before (**)
    setmax_mm_hiwater_rss(&tsk->signal->maxrss, tsk->mm);

    Thanks,
    -Kame






    \
     
     \ /
      Last update: 2010-03-31 04:19    [W:0.023 / U:63.252 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site