CPC Binding to Physical Hardware
The interfaces in this section bind the requests in a set to the physical hardware and set the counters to a starting position.
int cpc_bind_curlwp(cpc_t *cpc, cpc_set_t *set, uint_t flags); int cpc_bind_pctx(cpc_t *cpc, pctx_t *pctx, id_t id, cpc_set_t *set, uint_t flags); int cpc_bind_cpu(cpc_t *cpc, processorid_t id, cpc_set_t *set, uint_t flags); int cpc_unbind(cpc_t *cpc, cpc_set_t *set);
The cpc_bind_curlwp
()
function binds the set to the
calling light-weight process (LWP). The counters of the set are
virtualized to this LWP and count the events that occur on the CPU
while the calling LWP runs. The only flag that is valid for the
cpc_bind_curlwp
()
routine is
CPC_BIND_LWP_INHERIT
.
The cpc_bind_pctx
()
function binds the set to a LWP
in a process that is captured with libpctx
. This
function has no valid flags. For more information, see the
libpctx
(3LIB) man page.
The cpc_bind_cpu
()
function binds the set to the
processor specified in the id
parameter.
Binding a set to a CPU invalidates existing performance counter
contexts on the system. This function has no valid flags.
The cpc_unbind
()
function stops the performance
counters and releases the hardware that is associated with the bound
set. If a set is bound to a CPU, the cpc_unbind
()
function unbinds the LWP from the CPU and releases the CPC
pseudo-device.