Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Aug 2001 20:52:38 +0200
From:      Anton Berezin <tobez@tobez.org>
To:        Alfred Perlstein <bright@mu.org>
Cc:        hackers@freebsd.org
Subject:   Re: VM statistics per process?
Message-ID:  <20010822205238.A15301@heechee.tobez.org>
In-Reply-To: <20010822132420.Q81307@elvis.mu.org>; from bright@mu.org on Wed, Aug 22, 2001 at 01:24:20PM -0500
References:  <20010822173753.A11906@heechee.tobez.org> <20010822123926.P81307@elvis.mu.org> <20010822194744.A14143@heechee.tobez.org> <20010822132420.Q81307@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Aug 22, 2001 at 01:24:20PM -0500, Alfred Perlstein wrote:
> * Anton Berezin <tobez@tobez.org> [010822 12:47] wrote:
> > On Wed, Aug 22, 2001 at 12:39:26PM -0500, Alfred Perlstein wrote:

> > > getrusage(2)

> > That's not quite it - it does not provide the statistics of what
> > number of pages is currently on PQ_ACTIVE/PQ_INACTIVE queues, and I
> > think I need that number.

> Why do you need this?

I am trying to measure the quality of different malloc(3)
implementations with regard to the active set size.  I need the
PQ_ACTIVE number on a theory that, given a light system load and a lots
of RAM, a run of a process with a good malloc implementation will have
less active pages than the identical run of the same process with a bad
malloc implementation.  Consequently, such `good' (by this criterion)
malloc(3) will be also good, or even better, in case of a heavy system
load.

I know that phkmalloc is supposed to be good in this regard, but I am
trying to see whether there are better ones, especially for specific
programs that are known to be rather harsh memory users (perl).

> > I was thinking of copying pmap_pid_dump() from sys/i386/i386/pmap.c
> > and counting the pages belonging to different queues.  Is this a
> > feasible approach?

> It may be, I'm not sure how the structures are orginized, it may be an
> expensive operation to calculate this, but I'm not sure.

I am sure it is not an expensive operation to *calculate*, since
pmap_pid_dump() deals with vm_page_t structures which have a queue field
- just what I need.  What I worry about is that the actual *traversal*
might be expensive.  Worse, pmap_pid_dump() is undocumented, and I don't
understand what for(i=0;i<1024;i++) for(j=0;j<1024;j++) {} loop there is
supposed to do...   :-(

I'd appreciate if someone would explain this to me.

=Anton.
-- 
May the tuna salad be with you.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010822205238.A15301>