Performance measures

This page documents the measures command, which lists the performance measures on the current architecture. Also shown below are the lists for all available architectures.

The measures command

Libgist includes an executable called measures which lists all of the performance measures Libgist knows about on the current architecture. The measures program parses the GIST_MEASURES environment variable and puts an asterisk by the measures that a Gist-instrumented program will record.

Note that measures doesn't just look at the environment variable. It actually parses it in the same way as Gist_init(), so it tells you what will actually be measured. For instance, if you specify

GIST_MEASURES=sgi0:sgi1
then measures only marks sgi1, since only one of these can be recorded on an SGI (and Libgist takes the last one).


SGI performance measures

The measures sgi0 through sgi31 are the SGI hardware measures, as in man perfex. You may tell Gist to record up to one measure from sgi0-sgi15 and upt to one from sgi16-sgi31.
  sgi0    Cycles
  sgi1    Issued instructions
  sgi2    Issued loads
  sgi3    Issued stores
  sgi4    Issued store conditionals
  sgi5    Failed store conditionals
  sgi6    Decoded branches
  sgi7    Quadwords written back from scache
  sgi8    Correctable scache data array ECC errors
  sgi9    Primary instruction cache misses
  sgi10   Secondary instruction cache misses
  sgi11   Instruction misprediction from scache way prediction table
  sgi12   External interventions
  sgi13   External invalidations
  sgi14   Virtual coherency conditions
  sgi15   Graduated instructions

  sgi16   Cycles
  sgi17   Graduated instructions
  sgi18   Graduated loads
  sgi19   Graduated stores
  sgi20   Graduated store conditionals
  sgi21   Graduated floating point instructions
  sgi22   Quadwords written back from primary data cache
  sgi23   TLB misses
  sgi24   Mispredicted branches
  sgi25   Primary data cache misses
  sgi26   Secondary data cache misses
  sgi27   Data misprediction from scache way prediction table
  sgi28   External intervention hits in scache
  sgi29   External invalidation hits in scache
  sgi30   Store/prefetch exclusive to clean block in scache
  sgi31   Store/prefetch exclusive to shared block in scache
The various ru_* are the operating system measures provided by the IRIX getrusage() system call (see man getrusage). There is no limitation on the recording of these IRIX measures.
  ru_utime      the total amount of time spent executing in user mode
  ru_stime      the total amount of time spent in the system 
                executing on behalf of the process
  ru_maxrss     the maximum resident set size utilized (in kilobytes)
  ru_minflt     the number of page faults serviced without any I/O
                activity; here I/O activity is avoided by reclaiming a
                page frame from the list of pages awaiting reallocation.
  ru_majflt     page faults requiring I/O
  ru_nswap      the number of times a process was swapped out of main
                memory
  ru_inblock    block input operations 
  ru_oublock    block output operations 
  ru_msgsnd     messages sent over sockets
  ru_msgrcv     messages received from sockets
  ru_nsignals   signals received 
  ru_nvcsw      voluntary context switches (usually to await
                availablility of a resource)
  ru_nivcsw     involuntary context switches

Windows NT performance measures

Unavailable.
Timothy Culver
Last modified: Fri Apr 30 17:27:01 EDT 1999