cpc_enable(3cpc) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

cpc_enable(3cpc)

CPU Performance Counters Library Functions                    cpc_enable(3CPC)



NAME
       cpc_enable,  cpc_disable  - enable and disable performance counters and
       hardware sampling

SYNOPSIS
       cc [ flag... ] file... -lcpc [ library... ]
       #include <libcpc.h>

       int cpc_enable(cpc_t *cpc);


       int cpc_disable(cpc_t *cpc);

DESCRIPTION
       In certain applications, it can be useful to explicitly enable and dis‐
       able  performance  counters and hardware sampling at different times so
       that the performance of a  critical  algorithm  can  be  examined.  The
       cpc_enable() and cpc_disable() functions can be used to enable and dis‐
       able the performance counters and hardware sampling  without  otherwise
       disturbing the invoking LWP's performance hardware configuration.

RETURN VALUES
       Upon  successful  completion,  cpc_enable() and cpc_disable() return 0.
       Otherwise, they return -1 and set errno to indicate the error.

ERRORS
       These functions will fail if:

       EAGAIN    The associated performance counter context has  been  invali‐
                 dated by another process.


       EINVAL    No performance counter context has been created for the call‐
                 ing LWP.


EXAMPLES
       Example 1 Use cpc_enable and cpc_disable to  minimize  code  needed  by
       application.



       In  the following example, the cpc_enable() and cpc_disable() 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.



       If the application is instrumented in this way and then started by cpu‐
       track 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[])
         {
            cpc_t *cpc = cpc_open(CPC_VER_CURRENT);
             /* ... application code ... */

            if (cpc != NULL)
                    (void) cpc_enable(cpc);

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

            if (cpc != NULL)
                    (void) cpc_disable(cpc);

             /* ... other application code */
         }


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe


SEE ALSO
       cputrack(1), cpc(3CPC), cpc_open(3CPC), libcpc(3LIB), attributes(7)



Oracle Solaris 11.4               31 Jan 2005                 cpc_enable(3CPC)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3