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]
