Re: /proc/*/statm, exactly what does "shared" mean?

From: Richard F. Rebel
Date: Wed Feb 16 2005 - 10:19:35 EST



Hello,

I have heard that this particular information, while very important to
userland developers like me, is probably too expensive to keep track of
for most users.

Perhaps a way to enable it for developers, whom are willing to spend the
cpu cycles, and disable it for regular use would be a solution.

Would it be possible develop a solution allowing us to enable/disable
this tracking via a sysctl call?

Richard F. Rebel

On Wed, 2005-02-16 at 11:02 -0400, Mauricio Lin wrote:
> Hi Hugh,
>
> Thanks by your suggestion. I did not know that kernel 2.4.29 has
> changed the statm implementation. As I can see the statm
> implementation is different between 2.4 and 2.6.
>
> Let me see if I can use the 2.4.29 statm idea to improve the smaps for
> kernel 2.6.11-rc.
>
> BR,
>
> Mauricio Lin.
>
> On Wed, 16 Feb 2005 12:00:55 +0000 (GMT), Hugh Dickins <hugh@xxxxxxxxxxx> wrote:
> > On Wed, 16 Feb 2005, Mauricio Lin wrote:
> > > Well, for each vma it is checked how many pages are mapped to rss. So
> > > I have to check per page if it is allocated in physical memory. I know
> > > that this is a heavy function, but do you have any suggestion to
> > > improve this? What do you mean "needs refactoring into pgd_range,
> > > pud_range, pmd_range, pte_range levels like 2.4's statm"? Could you
> > > give more details, please?
> >
> > Just look at, say, linux-2.4.29/fs/proc/array.c proc_pid_statm:
> > which calls statm_pgd_range which calls statm_pmd_range which
> > calls statm_pte_range which scans along the array of ptes doing
> > the pte examination you're doing. There are plenty of examples
> > in 2.6.11-rc mm/memory.c of how to do it with pud level too.
> >
> > Whereas your way starts at the top and descends the tree each time
> > for every leaf, repeatedly mapping and unmapping the page table if
> > that pagetable is in highmem. You took follow_page as your starting
> > point, which is good for a single pte, but inefficient for many.
> >
> > Your function(s) will still be heavyweight, but somewhat faster.
> >
> > Hugh
> >
--
Richard F. Rebel

cat /dev/null > `tty`

Attachment: signature.asc
Description: This is a digitally signed message part