cpc_disable man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

CPC_ENABLE(3CPC)					      CPC_ENABLE(3CPC)

NAME
       cpc_enable, cpc_disable - enable and disable performance counters

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 at different times so that the performance of
       a  critical  algorithm  can  be examined. The cpc_enable() and cpc_dis‐
       able() 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, 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(5) for descriptions of the following attributes:

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │Interface Stability │ Evolving	      │
       ├────────────────────┼─────────────────┤
       │MT-Level	    │ Safe	      │
       └────────────────────┴─────────────────┘

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

				 Jan 31, 2005		      CPC_ENABLE(3CPC)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net