|
Packit |
577717 |
.TH LIBPFM 3 "July, 2003" "" "Linux Programmer's Manual"
|
|
Packit |
577717 |
.SH NAME
|
|
Packit |
577717 |
pfm_get_impl_pmcs, pfm_get_impl_pmds, pfm_get_impl_counters,
|
|
Packit |
577717 |
pfm_get_num_counters, pfm_get_num_pmcs, pfm_get_num_pmds,
|
|
Packit |
577717 |
pfm_get_hw_counter_width \- return
|
|
Packit |
577717 |
bitmask of implemented PMU registers or number of PMU registers
|
|
Packit |
577717 |
.SH SYNOPSIS
|
|
Packit |
577717 |
.nf
|
|
Packit |
577717 |
.B #include <perfmon/pfmlib.h>
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.BI "int pfm_get_impl_pmcs(pfmlib_regmask_t *" impl_pmcs ");"
|
|
Packit |
577717 |
.BI "int pfm_get_impl_pmds(pfmlib_regmask_t *" impl_pmds ");"
|
|
Packit |
577717 |
.BI "int pfm_get_impl_counters(pfmlib_regmask_t *" impl_counters ");"
|
|
Packit |
577717 |
.BI "int pfm_get_num_counters(unsigned int *"num ");"
|
|
Packit |
577717 |
.BI "int pfm_get_num_pmcs(unsigned int *"num ");"
|
|
Packit |
577717 |
.BI "int pfm_get_num_pmds(unsigned int *"num ");"
|
|
Packit |
577717 |
.BI "int pfm_get_num_counters(unsigned int *"num ");"
|
|
Packit |
577717 |
.BI "int pfm_get_hw_counter_width(unsigned int *"width ");"
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.SH DESCRIPTION
|
|
Packit |
577717 |
The \fBpfm_get_impl_*()\fR functions can be used to figure out which
|
|
Packit |
577717 |
PMU registers are implemented on the host CPU. All implemented registers
|
|
Packit |
577717 |
may not necessarily be available to applications. Programs need to query
|
|
Packit |
577717 |
the operating system kernel monitoring interface to figure out the list
|
|
Packit |
577717 |
of available registers.
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_get_impl_*()\fR functions all return a bitmask of registers corresponding to
|
|
Packit |
577717 |
the query. The bitmask pointer passed as argument is reset to zero by each function.
|
|
Packit |
577717 |
The returned bitmask must be accessed using the set of functions provided by the
|
|
Packit |
577717 |
library to ensure portability. See related man pages below.
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_get_num_*()\fR functions return the number of implemented PMC or PMD
|
|
Packit |
577717 |
registers. Those numbers may be different from the actual number of registers
|
|
Packit |
577717 |
available to applications.
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_get_impl_pmcs()\fR function returns in \fBimpl_pmcs\fR the bitmask of implemented PMCS.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
The \fBpfm_get_impl_pmds()\fR function returns in \fBimpl_pmds\fR the bitmask of implemented PMDS.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
The \fBpfm_get_impl_counters()\fR function returns in \fBimpl_counters\fR a bitmask of the PMD
|
|
Packit |
577717 |
registers used as counters. Depending on the PMU mode, not all PMD registers are
|
|
Packit |
577717 |
necessarily used as counters.
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_get_num_counters()\fR function returns in \fBnum\fR the number of PMD
|
|
Packit |
577717 |
used as counters. A counter is a PMD which is used to accumulate the
|
|
Packit |
577717 |
number of occurrences of an event.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
The \fBpfm_get_num_pmcs()\fR function returns in \fBnum\fR the number of
|
|
Packit |
577717 |
implemented PMCs by the host PMU.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
The \fBpfm_get_num_pmds()\fR function returns in \fBnum\fR the number of
|
|
Packit |
577717 |
implemented PMDs by the host PMU.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
The \fBpfm_get_hw_counter_width()\fR function returns the width in bits of the
|
|
Packit |
577717 |
counters in \fBwidth\fR. PMU implementations can have different number of
|
|
Packit |
577717 |
bits implemented. For instance, Itanium has 32-bit counters, while Itanium
|
|
Packit |
577717 |
2 has 47-bits.
|
|
Packit |
577717 |
.SH RETURN
|
|
Packit |
577717 |
The function returns whether or not it was successful.
|
|
Packit |
577717 |
A return value of \fBPFMLIB_SUCCESS\fR indicates success,
|
|
Packit |
577717 |
otherwise the value is the error code.
|
|
Packit |
577717 |
.SH ERRORS
|
|
Packit |
577717 |
.B PFMLIB_ERR_NOINIT
|
|
Packit |
577717 |
the library has not been initialized properly.
|
|
Packit |
577717 |
.SH SEE ALSO
|
|
Packit |
577717 |
pfm_regmask_set(3), pfm_regmask_isset(3)
|
|
Packit |
577717 |
.SH AUTHOR
|
|
Packit |
577717 |
Stephane Eranian <eranian@hpl.hp.com>
|
|
Packit |
577717 |
.PP
|