On Fri, 7 Jul 2006, Philip M. Gollucci wrote:

Hi, I'm trying do determine the units for one of the fields returned by 
getrusage(2)

man page on 6.0-RELEASE-p5 says this:
2 maxrss maximum shared memory or current resident set
3 ixrss integral shared memory

ru_ixrss
an ``integral'' value indicating the amount of memory used
by the text segment that was also shared among other pro-
cesses. This value is expressed in units of

kilobytes * ticks-of-execution.

Ticks are statistics clock ticks.
The statistics clock has a frequency of sysconf(_SC_CLK_TCK)

which to me implies thats in kilobytes, but to the contrary, we have the 
following

Doesn't that imply that it's in kb per stat clock ticks?

ApacheSizeLimit on bsd systems uses BSD::Resource to get the memory and
shared-pages size.
        sub bsd_size_check {
                return (&BSD::Resource::getrusage())[2,3];
        }

I also have a local test based on the recent Apache::SizeLimit work from Dave 
Rolsky
where

maxrss > ixrss
(Apache-Test output snipped)
#     '14124' maxrss
#         >
#     '52080' ixrss

I tried looking in src/sys/kern/kern_resource.c but I didn't find anything that 
told me the units.

My inkling is the documentation is WRONG.

If it's reported share memory as greater than total memory, then I think the docs for BSD::Resource are correct. We need to divide that second number (ixrss) by the value of the stat clock tick. Any idea how that can be determined?


-dave

/*===================================================
VegGuide.Org                        www.BookIRead.com
Your guide to all that's veg.       My book blog
===================================================*/
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to