*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->NetBSD man pages -> i386_pmc_read (2)              


I386_PMC_INFO(System Library Functions Manual (i386 ArchitectuI386_PMC_INFO(3)

NAME    [Toc]    [Back]

     i386_pmc_info, i386_pmc_startstop, i386_pmc_read - interface to CPU performance

LIBRARY    [Toc]    [Back]

     i386 Architecture Library (libi386, -li386)

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <machine/sysarch.h>
     #include <machine/specialreg.h>

     i386_pmc_info(struct i386_pmc_info_args *ia);

     i386_pmc_startstop(struct i386_pmc_startstop_args *ssa);

     i386_pmc_read(struct i386_pmc_read_args *ra);

DESCRIPTION    [Toc]    [Back]

     These functions provide an interface to the CPU performance counters on
     the 586-class and 686-class processors.

     i386_pmc_info() will return information about the available CPU counters.
     The information is returned in ia having the following structure:

     struct i386_pmc_info_args {
             int     type;
             int     flags;

     The type member describes the class of performance counters available.
     Valid values are PMC_TYPE_NONE, PMC_TYPE_I586, and PMC_TYPE_I686.  The
     flags member describes additional capabilities of the processor.  Valid
     values are PMC_INFO_HASTSC.

     i386_pmc_startstop() is used to start and stop the measurement of the CPU
     performance counters.  The argument ssa has the following structure:

     struct i386_pmc_startstop_args {
             int counter;
             u_int64_t val;
             u_int8_t event;
             u_int8_t unit;
             u_int8_t compare;
             u_int8_t flags;

     The counter specified by the member counter is started if the member
     flags has PMC_SETUP_KERNEL or PMC_SETUP_USER set, otherwise the counter
     is stopped.  The initial value of the counter is set to val.  Additional
     values for the flags member are PMC_SETUP_EDGE and PMC_SETUP_INV.  The
     event member specifies some event written to the control register.  The
     unit member specifies the measurement units.  The compare member is a
     mask for the counter.

     i386_pmc_read() will return information about a specific CPU counter measured
 during the last measurement period determined by the calling of
     i386_pmc_startstop().  The information is returned in ra having the following

     struct i386_pmc_read_args {
             int counter;
             u_int64_t val;
             u_int64_t time;

     The counter to read should be specified by the counter member.  Counters
     are numbered from 0 to PMC_NCOUNTERS.  The value of the counter is
     returned in the val member.  The time since epoch, measured in CPU clock
     cycles, is returned in the time member.

RETURN VALUES    [Toc]    [Back]

     Upon successful completion zero is returned, otherwise -1 is returned on

BSD                            November 10, 2001                           BSD
[ Back ]
 Similar pages
Name OS Title
pctr OpenBSD driver for CPU performance counters
uperf OpenBSD performance counters driver
pctr OpenBSD display CPU performance counters
libperfex IRIX A procedural interface to processor event counters
perfex IRIX Command line interface to processor event counters
perfmon FreeBSD CPU performance-monitoring interface
r10k_evcntrs IRIX Programming the processor event counters
ecadmin IRIX configure and control the global event counters
ecfind IRIX report processes using process-based event counters
ttcp IRIX test TCP and UDP performance
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service