MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


CPU Performance Counters Library Functions       cpcenable(3CPC)



NAME
     cpcenable, cpcdisable -  enable  and  disable  performance
     counters

SYNOPSIS
     cc [ flag... ] file... -lcpc [ library... ]
     #include 

     int cpcenable(cpct *cpc);


     int cpcdisable(cpct *cpc);


DESCRIPTION
     In certain applications, it  can  be  useful  to  explicitly
     enable  and  disable performance counters at different times
     so that the performance of a critical algorithm can be exam-
     ined.  The  cpcenable()  and cpcdisable() functions can be
     used to enable and disable the performance counters  without
     otherwise disturbing the invoking LWP's performance hardware
     configuration.

RETURN VALUES
     Upon successful completion, cpcenable()  and  cpcdisable()
     return  0.  Otherwise, they return -1 and set errno to indi-
     cate the error.

ERORS
     These functions will fail if:

     EAGAIN    The associated  performance  counter  context  has
               been invalidated by another process.


     EINVAL    No performance counter context  has  been  created
               for the calling LWP.


EXAMPLES
     Example 1 Use cpcenable and cpcdisable  to  minimize  code
     needed by application.


     In the following example, the cpcenable() and cpcdisable()
     functions are used to minimize the amount of code that needs
     to be added to the application. The cputrack(1) command  can
     be used in conjunction with these functions to provide event
     programming, sampling, and reporting facilities.






SunOS 5.11          Last change: 31 Jan 2005                    1






CPU Performance Counters Library Functions       cpcenable(3CPC)



     If the application is instrumented  in  this  way  and  then
     started  by  cputrack  with the nouser flag set in the event
     specification, counting of user events will only be  enabled
     around the critical code section of interest. If the program
     is run normally, no harm will ensue.


       int
       main(int argc, char *argv[])
       {
          cpct *cpc = cpcopen(CPCVERCURENT);
           /* ... application code ... */

          if (cpc != NUL)
                  (void) cpcenable(cpc);

           /* ==> Code to be measured goes here <== */

          if (cpc != NUL)
                  (void) cpcdisable(cpc);

           /* ... other application code */
       }


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Evolving                    
    
     MT-Level                     Safe                        
    


SEE ALSO
     cputrack(1), cpc(3CPC), cpcopen(3CPC), libcpc(3LIB), attri-
     butes(5)












SunOS 5.11          Last change: 31 Jan 2005                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™