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
SYNOPSIS
#include <perfmon/pfmlib.h>
int pfm_get_pmu_name(char **name);
int pfm_get_pmu_type(int *type);
int pfm_get_pmu_name_bytype(int type, char **name);
int pfm_pmu_is_supported(int type);
int pfm_force_pmu(int type);
int pfm_list_supported_pmus(int (*pf)(const char *fmt,...));
DESCRIPTION
These functions retrieve information about the detected
host PMU and the PMU models supported by the library. More
than one model can be supported by the same library.
Each PMU model is assigned a type and a name. The latter
is just a string and the former is a unique identifier.
The currently supported types are:
PFMLIB_GENERIC_PMU
the default architected PMU model, i.e., the basic
model.
PFMLIB_ITANIUM_PMU
the Itanium processor PMU model. The model is found
in the first implementation of the IA-64 architec
ture, code name Merced.
PFMLIB_ITANIUM2_PMU
the Itanium 2 processor PMU model. The model is
found in the first implementation of the IA-64
architecture, code name McKinley.
The pfm_get_pmu_name function returns the name of the
detected host PMU. The library must have been initialized
properly before making this call. The name is returned in
the name argument. The returned string must be considered
as read only.
The pfm_get_pmu_type function returns the type of the
detected host PMU. The library must have been initialized
properly before making this call. The type returned in
type can be any one of the three listed above.
The pfm_get_pmu_name_bytype function returns the name of a
PMU model in name given a type in the type argument.
if the given PMU type is supported by the library indepen
dently of what the host PMU model is.
The pfm_force_pmu function is used to forced the library
to use a particular PMU model compared to what it has
detected. The library checks that the selected type can be
supported by the host PMU. This is mostly useful to force
the library to the use generic PMU model PFM
LIB_GENERIC_PMU. This function can be called at any time
and upon return the library is considered initialized.
The pfm_list_supported_pmu function is used to print the
list PMU types that the library supports. The results is
printed using the function provided in the pf argument,
which must be a printf-style function.
RETURN
The function returns whether or not it was successful. A
return value of PFMLIB_SUCCESS indicates success, other
wise the value is the error code.
ERRORS
PFMLIB_ERR_NOINIT the library has not been initialized
properly.
PFMLIB_ERR_INVAL
invalid argument was given, most likely invalid
pointer or invalid PMU type.
PFMLIB_ERR_NOTSUPP
the selected PMU type can be used on the host CPU.
AUTHOR
Stephane Eranian <eranian@hpl.hp.com>
Man(1) output converted with
man2html