Re: [PATCH] add "VmUsers: N" to /proc/$PID/status

From: Denys Vlasenko
Date: Thu Jul 16 2009 - 17:27:30 EST


On Thursday 16 July 2009 21:46, Valdis.Kletnieks@xxxxxx wrote:
> On Wed, 15 Jul 2009 03:22:18 +0200, Denys Vlasenko said:
>
> > It can be nice to know how many such CLONE_VM'ed processes
> > share VM with given /proc/PID. Then it would be possible to do
> > more accurate accounting of memory usage. Say, by dividing
> > all memory usage numbers of this process by this number.
>
> Process A clones a process A1. Process B clones a process B1. Now
> all 4 of them have 'VmUsers: 2' on them, but there's no clean way to tell
> whether A1 or B1 is the one sharing with A, or with B.
>
> The patch is probably sufficient if all you want is some N to divide by, but
> not if you care *which* processes are sharing how much.

You are right. There is more: the truly accurate accounting
needs to be per page. Like /proc/$PID/smaps
and /proc/$PID/pagemap. (However, I am not sure you can
relize that two processes share a VM by looking
at these files either)

I do not aim to solve _that_ problem with my patch.

I, indeed, want to have just an N I can divide RSS/VSZ/etc by,
to get, say, top display which do not mislead user
into thinking that he has 3 processes with 100 megabyte RSS
when in reality he has 3 processes sharing a single VM
with 100 meg RSS.

This will still not be completely accurate due to per-page
sharing and such, but it will be more accurate
than what we have now.
--
vda
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/