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