Thanks Menno and Jim! I'm looking around the Apple documentation to hopefully find where they store the load average. Yes, it would be nice to have all the source available; I should take a better look at opensolaris.
--travis On Mon, Mar 31, 2008 at 12:02 AM, Jim Mauro <[EMAIL PROTECTED]> wrote: > Hi Travis - Your first clue here is the backtick operator (`) used to > extract hp_avenrun[0]. The backtick operator is used to read the > value of kernel variables, which will be specific to the running kernel. > That is, Solaris, Mac OS X (Darwin), FreeBSD and all other kernels > with DTrace will not have portability when it comes to dtrace scripts > that use the backtick variable, since by definition they will be kernel > specific. > > hp_avenrun[] is a Solaris kernel variable: > > http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/clock.c#97 > > For some kernel variables (like avenrun), you could look around for > something > similar in your target kernel: > > kilroy> nm -x /mach_kernel | grep avenrun > 004d25ac 0f 08 0000 0002dbb9 _avenrun > kilroy> > > Of course, without the source, it's not clear what the variable type is.... > > So....your example below is specific to Solaris. If you see the backtick > operator, think "kernel specific". > > HTH, > /jim > > > > Travis Crawford wrote: > > Hi dtrace-discuss, > > > > Having recently upgraded to OS X 10.5 I'm relatively new to DTrace, so > > apologies if this has been covered before; I did search the archives > > and didn't find anything though. > > > > As a DTrace starter project I'd like to understand how to extract > > common performance metrics before diving too far in. One of these > > common metrics is load average, which I thought would be pretty easy. > > However, I'm confused by this code snippet (from > > http://www.brendangregg.com/DTrace/iotop): > > > > """ > > /* fetch 1 min load average */ > > this->load1a = `hp_avenrun[0] / 65536; > > this->load1b = ((`hp_avenrun[0] % 65536) * 100) / 65536; > > """ > > > > I can't figure out where hp_avenrun is defined. I searched > > http://wikis.sun.com/display/DTrace as well as looking at all the > > probes on my system ($ sudo dtrace -l | grep hp_avenrun) and came up > > empty. > > > > So my question is, when reading d scripts, how should I go about > > finding out what these mysterious variables are? > > > > Thanks, > > Travis > > _______________________________________________ > > dtrace-discuss mailing list > > [email protected] > > > _______________________________________________ dtrace-discuss mailing list [email protected]
