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>
