PMC.IAF(3) | MidnightBSD Library Functions Manual | PMC.IAF(3) |
pmc.iaf
—
measurement events for Intel fixed function performance
counters.
Performance Counters Library (libpmc, -lpmc)
#include
<pmc.h>
Intel fixed-function PMCs are present in CPUs that conform to version 2 or later of the Intel Performance Measurement Architecture. Each fixed-function PMC measures a specific hardware event. The number of fixed-function PMCs implemented in a CPU can vary. The number of fixed-function PMCs present can be determined at runtime by using function pmc_cpuinfo(3).
Intel fixed-function PMCs are documented in Volume 3: System Programming Guide, IA-32 Intel(R) Architecture Software Developer's Manual, Order Number 253669-027US, Intel Corporation, July 2008.
Fixed-function PMCs support the following capabilities:
Capability | Support |
PMC_CAP_CASCADE | No |
PMC_CAP_EDGE | No |
PMC_CAP_INTERRUPT | Yes |
PMC_CAP_INVERT | No |
PMC_CAP_READ | Yes |
PMC_CAP_PRECISE | No |
PMC_CAP_SYSTEM | Yes |
PMC_CAP_TAGGING | No |
PMC_CAP_THRESHOLD | No |
PMC_CAP_USER | Yes |
PMC_CAP_WRITE | Yes |
These PMCs are named using a class name prefix of
“iaf-
”.
These PMCs support the following modifiers:
os
usr
anythread
If neither of the “os
” or
“usr
” qualifiers are specified, the
default is to enable both.
The fixed function PMCs are selectable using the following event names:
INSTR_RETIRED.ANY
CPU_CLK_UNHALTED.CORE
CPU_CLK_UNHALTED.REF
To measure the number of core cycles for which the core was not halted use the event specifier "iaf-cpu-clk-unhalted.core".
To measure the number of user instructions retired use the event specifier "iaf-instr-retired.any,usr".
To measure the number of user instructions retired on all logical processors in an Atom CPU, use the event specifier "iaf-instr-retired.any,usr,anythread".
pmc(3), pmc.atom(3), pmc.core(3), pmc.core2(3), pmc.k7(3), pmc.k8(3), pmc.p4(3), pmc.p5(3), pmc.p6(3), pmc.soft(3), pmc.tsc(3), pmc_cpuinfo(3), pmclog(3), hwpmc(4)
The pmc
library first appeared in
FreeBSD 6.0.
The Performance Counters Library (libpmc, -lpmc) library was written by Joseph Koshy <jkoshy@FreeBSD.org>.
November 14, 2008 | midnightbsd-3.1 |