Messages in this thread | | | Date | Sat, 13 Dec 2008 09:18:50 +0530 | From | Balbir Singh <> | Subject | Re: [PATCH, RESEND] introduce get_mm_hiwater_xxx(), fix taskstats->hiwater_xxx accounting |
| |
* KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> [2008-12-13 11:34:53]:
> > (changes: update the changelog/comments) > > > > xacct_add_tsk() relies on do_exit()->update_hiwater_xxx() and uses > > mm->hiwater_xxx directly, this leads to 2 problems: > > > > - taskstats_user_cmd() can call fill_pid()->xacct_add_tsk() > > at any moment before the task exits, so we should check the > > current values of rss/vm anyway. > > > > - do_exit()->update_hiwater_xxx() calls are racy. An exiting > > thread can be preempted right before mm->hiwater_xxx = new_val, > > and another thread can use A_LOT of memory and exit in between. > > When the first thread resumes it can be the last thread in the > > thread group, in that case we report the wrong hiwater_xxx > > values which do not take A_LOT into account. > > > > Introduce get_mm_hiwater_rss() and get_mm_hiwater_vm() helpers and > > change xacct_add_tsk() to use them. The first helper will also be > > used by rusage->ru_maxrss accounting. > > > > Kill do_exit()->update_hiwater_xxx() calls. Unless we are going to > > decrease rss/vm there is no point to update mm->hiwater_xxx, and > > nobody can look at this mm_struct when exit_mmap() actually unmaps > > the memory. > > > > Signed-off-by: Oleg Nesterov <oleg@redhat.com> > > Thanks! looks good to me. > Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Me too, I am acking it, but you already have all the acks you need :)
Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
-- Balbir
| |