|
Packit |
577717 |
.TH LIBPFM 3 "November, 2003" "" "Linux Programmer's Manual"
|
|
Packit |
577717 |
.SH NAME
|
|
Packit |
577717 |
pfm_get_pmu_name, pfm_get_pmu_type, pfm_get_pmu_name_bytype, pfm_pmu_is_supported, pfm_force_pmu,pfm_list_supported_pmu \- query library about supported PMU models
|
|
Packit |
577717 |
.SH SYNOPSIS
|
|
Packit |
577717 |
.nf
|
|
Packit |
577717 |
.B #include <perfmon/pfmlib.h>
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.BI "int pfm_get_pmu_name(char *"name ", int " maxlen);
|
|
Packit |
577717 |
.BI "int pfm_get_pmu_type(int *" type);
|
|
Packit |
577717 |
.BI "int pfm_get_pmu_name_bytype(int " type ", char *" name ", int " maxlen);
|
|
Packit |
577717 |
.BI "int pfm_pmu_is_supported(int " type);
|
|
Packit |
577717 |
.BI "int pfm_force_pmu(int " type);
|
|
Packit |
577717 |
.BI "int pfm_list_supported_pmus(int (*" pf ")(const char *"fmt ",...));"
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
.SH DESCRIPTION
|
|
Packit |
577717 |
These functions retrieve information about the detected host PMU
|
|
Packit |
577717 |
and the PMU models supported by the library. More than one model
|
|
Packit |
577717 |
can be supported by the same library.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Each PMU model is assigned a type and a name. The latter is just
|
|
Packit |
577717 |
a string and the former is a unique identifier. The currently
|
|
Packit |
577717 |
supported types are:
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_GENERIC_PMU
|
|
Packit |
577717 |
Intel Itanium default architected PMU model, i.e., the basic model.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_ITANIUM_PMU
|
|
Packit |
577717 |
Intel Itanium processor PMU model. The model is found in the first
|
|
Packit |
577717 |
implementation of the IA-64 architecture, code name Merced.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_ITANIUM2_PMU
|
|
Packit |
577717 |
Intel Itanium 2 processor PMU model. This is the model provided
|
|
Packit |
577717 |
by McKinley, Madison, and Deerfield processors.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MONTECITO_PMU
|
|
Packit |
577717 |
Intel Dual-core Itanium 2 processor PMU model. This is the model provided
|
|
Packit |
577717 |
by Montecito, Montvale processors.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_AMD64_PMU
|
|
Packit |
577717 |
AMD AMD64 processors (family 15 and 16)
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_GEN_IA32_PMU
|
|
Packit |
577717 |
Intel X86 architectural PMU v1, v2, v3
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_I386_P6_PMU
|
|
Packit |
577717 |
Intel P6 processors. That includes Pentium Pro, Pentium II, Pentium III, but excludes Pentium M
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_I386_PM_PMU
|
|
Packit |
577717 |
Intel Pentium M processors.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_INTEL_PII_PMU
|
|
Packit |
577717 |
Intel Pentium II processors.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_PENTIUM4_PMU
|
|
Packit |
577717 |
Intel processors based on Netburst micro-architecture. That includes Pentium 4.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_COREDUO_PMU
|
|
Packit |
577717 |
Intel processors based on Yonah micro-architecture. That includes Intel Core Duo/Core Solo processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_I386_PM_PMU
|
|
Packit |
577717 |
Intel Pentium M processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_INTEL_CORE_PMU
|
|
Packit |
577717 |
Intel processors based on the Core micro-architecture. That includes Intel Core 2 Duo/Quad processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_INTEL_ATOM_PMU
|
|
Packit |
577717 |
Intel processors based on the Atom micro-architecture.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_INTEL_NHM_PMU
|
|
Packit |
577717 |
Intel processors based on the Nehalem micro-architectures. That includes Intel Core i7 processors.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_20KC_PMU
|
|
Packit |
577717 |
MIPS 20KC processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_24K_PMU
|
|
Packit |
577717 |
MIPS 24K processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_25KF_PMU
|
|
Packit |
577717 |
MIPS 25KF processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_34K_PMU
|
|
Packit |
577717 |
MIPS 34K processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_5KC_PMU
|
|
Packit |
577717 |
MIPS 5KC processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_74K_PMU
|
|
Packit |
577717 |
MIPS 74K processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_R10000_PMU
|
|
Packit |
577717 |
MIPS R10000 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_R12000_PMU
|
|
Packit |
577717 |
MIPS R12000 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_RM7000_PMU
|
|
Packit |
577717 |
MIPS RM7000 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_RM9000_PMU
|
|
Packit |
577717 |
MIPS RM9000 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_SB1_PMU
|
|
Packit |
577717 |
MIPS SB1/SB1A processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_VR5432_PMU
|
|
Packit |
577717 |
MIPS VR5432 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_VR5500_PMU
|
|
Packit |
577717 |
MIPS VR5500 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_ICE9A_PMU
|
|
Packit |
577717 |
SiCortex ICE9A
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_MIPS_ICE9B_PMU
|
|
Packit |
577717 |
SiCortex ICE9B
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_POWERPC_PMU
|
|
Packit |
577717 |
IBM POWERPC processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_CRAYX2_PMU
|
|
Packit |
577717 |
Cray X2 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_CELL_PMU
|
|
Packit |
577717 |
IBM Cell processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_PPC970_PMU
|
|
Packit |
577717 |
IBM PowerPC 970(FX,GX) processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_PPC970MP_PMU
|
|
Packit |
577717 |
IBM PowerPC 970MP processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_POWER3_PMU
|
|
Packit |
577717 |
IBM POWER3 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_POWER4_PMU
|
|
Packit |
577717 |
IBM POWER4 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_POWER5_PMU
|
|
Packit |
577717 |
IBM POWER5 processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_POWER5p_PMU
|
|
Packit |
577717 |
BM POWER5+ processors
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_POWER6_PMU
|
|
Packit |
577717 |
IBM POWER6 processors
|
|
Packit |
577717 |
.LP
|
|
Packit |
577717 |
The \fBpfm_get_pmu_name()\fR function returns the name of the detected
|
|
Packit |
577717 |
host PMU. The library must have been initialized properly before making this
|
|
Packit |
577717 |
call. The name is returned in the \fBname\fR argument. The \fBmaxlen\fR argument
|
|
Packit |
577717 |
indicates the maximum length of the buffer provided for \fBname\fR.
|
|
Packit |
577717 |
Up to \fBmaxlen-1\fR characters will be returned, not including the
|
|
Packit |
577717 |
termination character.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_get_pmu_type()\fR function returns the type of the detected host
|
|
Packit |
577717 |
PMU. The library must have been initialized properly before making this
|
|
Packit |
577717 |
call. The type returned in \fBtype\fR can be any one of the three listed above.
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_get_pmu_name_bytype()\fR function returns the name of a PMU model in
|
|
Packit |
577717 |
\fBname\fR given a type in the \fBtype\fR argument. The \fBmaxlen\fR argument
|
|
Packit |
577717 |
indicates the maximum length of the buffer provided for \fBname\fR.
|
|
Packit |
577717 |
Up to \fBmaxlen-1\fR characters will be returned, not including the
|
|
Packit |
577717 |
termination character.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_pmu_is_supported()\fR function returns \fBPFMLIB_SUCCESS\fR if the given
|
|
Packit |
577717 |
PMU type is supported by the library independently of what the host PMU model is.
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_force_pmu()\fR function is used to forced the library to use a particular
|
|
Packit |
577717 |
PMU model compared to what it has detected. The library checks that the selected
|
|
Packit |
577717 |
type can be supported by the host PMU. This is mostly useful to force the
|
|
Packit |
577717 |
library to the use generic PMU model \fBPFMLIB_GENERIC_PMU\fR. This function can
|
|
Packit |
577717 |
be called at any time and upon return the library is considered initialized.
|
|
Packit |
577717 |
.sp
|
|
Packit |
577717 |
The \fBpfm_list_supported_pmu()\fR function is used to print the list PMU types
|
|
Packit |
577717 |
that the library supports. The results is printed using the function provided
|
|
Packit |
577717 |
in the \fBpf\fR argument, which must be a printf-style function.
|
|
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 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_ERR_INVAL
|
|
Packit |
577717 |
invalid argument was given, most likely invalid pointer or invalid PMU type.
|
|
Packit |
577717 |
.TP
|
|
Packit |
577717 |
.B PFMLIB_ERR_NOTSUPP
|
|
Packit |
577717 |
the selected PMU type can be used on the host CPU.
|
|
Packit |
577717 |
.SH AUTHOR
|
|
Packit |
577717 |
Stephane Eranian <eranian@hpl.hp.com>
|
|
Packit |
577717 |
.PP
|