Re: [patch 12/12] mm: correctly synchronize rss-counters atexit/exec
From: Hugh Dickins
Date: Fri Jun 08 2012 - 01:28:47 EST
On Thu, 7 Jun 2012, Linus Torvalds wrote:
> No, this is apparently that same "almost there" patch from Oleg. I
> guarantee that it's wrong.
>
> Linus
>
> ---
>
> [ This part, to be exact: ]
>
> On Thu, Jun 7, 2012 at 6:16 PM, Hugh Dickins <hughd@xxxxxxxxxx> wrote:
> > --- a/kernel/tsacct.c
> > +++ b/kernel/tsacct.c
> > @@ -91,6 +91,7 @@ void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
> > stats->virtmem = p->acct_vm_mem1 * PAGE_SIZE / MB;
> > mm = get_task_mm(p);
> > if (mm) {
> > + sync_mm_rss(mm);
> > /* adjust to KB unit */
> > stats->hiwater_rss = get_mm_hiwater_rss(mm) * PAGE_SIZE / KB;
> > stats->hiwater_vm = get_mm_hiwater_vm(mm) * PAGE_SIZE / KB;
> > --
Yup.
It does look as if Oleg's intent (last chance to update xacct stats
from dying current task) would be well served by changing that to
if (p == current)
sync_mm_rss(mm);
but I've made too many hurried decisions recently to sign off on that.
Hugh