On Wed, 31 Mar 2010 10:57:18 +0900 Minchan Kim <minchan.kim@xxxxxxxxx> 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 -- 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>