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

개요

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

cpc_enable(3cpc)

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 ap‐
       plication.



       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