LIBPFM(3)
π LIBPFM(3) β the Linux Programmer's Manual glow-up π
okay bestie, welcome to the libpfm_intel_core page β¨ this is from the Linux Programmer's Manual, and it's all about making your Intel Core-based processors spill their performance-counter tea π«
πΈ NAME πΈ
libpfm_intel_core β support for Intel Core-based processors π
β¨ SYNOPSIS β¨
#include <perfmon/pfmlib.h>
- PMU name:
core - PMU desc:
Intel Core
π¦ DESCRIPTION π¦
So the library is out here supporting every single Intel Core-based processor that exists, and that includes models 15, 23, and 29. all of them. no crumbs left. periodt π
π MODIFIERS π
these are the modifiers that are supported on Intel Core processors β collect them all, they're iconic:
uβ measure at user level, which includes privilege levels1,2,3. this one corresponds toPFM_PLM3. it's a boolean modifier, so it's giving yes/no energy πΈkβ measure at kernel level, which includes privilege level0. this one corresponds toPFM_PLM0. also a boolean modifier, keep up bestie π«iβ invert the meaning of the event. the counter will now count cycles in which the event is not occurring. literally flipping the whole vibe. this is a boolean modifier πeβ enable edge detection, i.e., count only when there is a state transition from no occurrence of the event to at least one occurrence. so it's the "something finally happened" detector π₯
β οΈ okay so this modifier must be combined with a counter mask modifier (m) with a value greater or equal to one. do not skip this step, i'm begging π
this is a boolean modifier.
cβ set the counter mask value. the mask acts as a threshold. the counter will count the number of cycles in which the number of occurrences of the event is greater or equal to the threshold. it's giving "how many times do i have to see this before it counts" energy π
this is an integer modifier with values in the range [0:255] π
π AUTHORS π
Stephane Eranian <eranian@gmail.com> β the main character who made this happen π«Άπ
and that's the whole page bestie, no cap π September, 2009, from the Linux Programmer's Manual β LIBPFM(3), that's the source/version and the date right there, slay πβ¨π
π¦ where this page comes from
- arch rolling: libpfm 4.14.1-1 Β· MIT
- centos-stream 10: libpfm-devel 4.14.1-1.el10 Β· MIT
- centos-stream 9: libpfm-devel 4.14.1-1.el9 Β· MIT
- centos-stream 9: libpfm-devel 4.14.1-1.el9 Β· MIT
- debian bookworm: libpfm4-dev 4.13.0-1 Β· MIT
- debian trixie: libpfm4-dev 4.13.0+git99-gc5587f9-1 Β· MIT
- fedora 43: libpfm-devel 4.13.0-16.fc43 Β· MIT
- fedora 43: libpfm-devel 4.13.0-16.fc43 Β· MIT
- fedora 43: libpfm-devel 4.13.0-20.fc43
- fedora 43: libpfm-devel 4.13.0-20.fc43
- fedora 43: libpfm-devel 4.14.1-2.fc43 Β· MIT
- fedora 43: libpfm-devel 4.14.1-2.fc43 Β· MIT
- fedora 44: libpfm-devel 4.13.0-19.fc44 Β· MIT
- fedora 44: libpfm-devel 4.13.0-19.fc44 Β· MIT
- fedora 44: libpfm-devel 4.13.0-20.fc44
- fedora 44: libpfm-devel 4.13.0-20.fc44
- fedora 44: libpfm-devel 4.14.1-2.fc44 Β· MIT
- fedora 44: libpfm-devel 4.14.1-2.fc44 Β· MIT
- nixos 26.05: papi 7.2.0
- nixpkgs unstable: libpfm 4.14.1
- nixpkgs unstable: papi 7.2.0
- opensuse-leap 16.0: libpfm-devel 4.13.0-160000.3.1 Β· MIT
- ubuntu jammy: libpfm4-dev 4.11.1+git32-gd0b85fb-1 Β· BSD-like
- ubuntu jammy: libpfm4-dev 4.11.1+git32-gd0b85fb-1ubuntu0.1 Β· BSD-like
- ubuntu noble: libpfm4-dev 4.13.0+git32-g0d4ed0e-1 Β· MIT
- ubuntu noble: libpfm4-dev 4.13.0+git32-g0d4ed0e-1ubuntu0.1 Β· MIT
- ubuntu questing: libpfm4-dev 4.13.0+git99-gc5587f9-1
- ubuntu resolute: libpfm4-dev 4.13.0+git106-g3e4031b-1 Β· MIT
- ubuntu resolute: libpfm4-dev 4.13.0+git106-g3e4031b-1ubuntu0.1 Β· MIT
- ubuntu stonking: libpfm4-dev 4.13.0+git106-g3e4031b-1ubuntu1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms