LIBPFM(3) Linux Programmer's Manual LIBPFM(3)NAME
libpfm_core - support for Intel Atom processor family
SYNOPSIS
#include <perfmon/pfmlib.h>
#include <perfmon/pfmlib_intel_atom.h>
DESCRIPTION
The libpfm library provides full support for the Intel Atom processor.
This processor implements Intel architectural perfmon v3 with Precise
Event-Based Sampling (PEBS) support. It also implements all architected
events to which it adds lots of Atom specific events.
The libpfm interface is defined in pfmlib_intel_atom.h. It consists of
a set of functions and structures which describe and allow access to
the Intel Atom processor specific PMU features.
When Intel Atom processor specific features are needed to support a
measurement, their descriptions must be passed as model-specific input
arguments to the pfm_dispatch_events() function. The Intel Atom proces‐
sors specific input arguments are described in the pfm‐
lib_intel_atom_input_param_t structure. No output parameters are cur‐
rently defined. The input parameters are defined as follows:
typedef struct {
unsigned int cnt_mask;
unsigned int flags;
} pfmlib_intel_atom_counter_t;
typedef struct {
pfmlib_intel_atom_counter_t pfp_intel_atom_counters[PMU_INTEL_ATOM_NUM_COUNTERS];
unsigned int pfp_intel_atom_pebs_used;
uint64_t reserved[4];
} pfmlib_core_input_param_t;
The Intel Atom processor provides several additional per-event features
for counters: thresholding, inversion, edge detection, monitoring both
threads. They can be set using the pfp_intel_atom_counters data struc‐
ture for each event. The flags field can be initialized with any com‐
binations of the following values:
PFMLIB_INTEL_ATOM_SEL_INV
Inverse the results of the cnt_mask comparison when set
PFMLIB_INTEL_ATOM_SEL_EDGE
Enable edge detection of events.
PFMLIB_INTEL_ATOM_SEL_ANYTHR
Enable measuring the event in any of the two threads. By default
only the current thread is measured.
The cnt_mask field is used to set the event threshold. The value of
the counter is incremented each time the number of occurrences per
cycle of the event is greater or equal to the value of the field. Thus
the event is modified to actually measure the number of qualifying
cycles. When zero all occurrences are counted (this is the default).
Support for Precise-Event Based Sampling (PEBS)
The library can be used to setup the PMC registers when using PEBS. In
this case, the pfp_intel_atom_pebs_used field must be set to 1. When
using PEBS, it is not possible to use more than one event.
ERRORS
Refer to the description of the pfm_dispatch_events() function for
errors.
SEE ALSOpfm_dispatch_events(3) and set of examples shipped with the library
AUTHOR
Stephane Eranian <eranian@gmail.com>
November, 2006 LIBPFM(3)