LIBPFM(3)
π LIBPFM(3) β the intel_atom era π
okay so bestie, this is the libpfm_intel_atom page from the Linux Programmer's Manual (yes, section 3, we're fancy like that) and it's literally all about making Intel Atom processors spill their little performance-counter secrets. no cap. π¦
β¨ NAME β¨
libpfm_intel_atom β support for Intel Atom processors π
πΈ SYNOPSIS πΈ
like, here's the whole vibe:
#include <perfmon/pfmlib.h>
PMU name: atom
PMU desc: Intel Atom
so the PMU name is atom and the description is literally Intel Atom. iconic of her honestly. π
π« DESCRIPTION π«
This library has your back for every single Intel Atom-based processor, and yes, that includes family 6 model 28. periodt. π₯
π§ MODIFIERS π§
okay bestie here's where it gets juicy β these are the modifiers that work on Intel Atom processors. each one is a little toggle that changes how your counter behaves, and you're gonna want to know all six. no skipping. π
uβ measures at user level, which covers privilege levels 1, 2, 3. this one lines up withPFM_PLM3. it's a boolean modifier, so it's just on or off, no in-between. β¨kβ measures at kernel level, which is privilege level 0. this maps toPFM_PLM0. also a boolean modifier, also just vibes. π«Άiβ inverts the meaning of the event. so now the counter is counting cycles where the event is not happening. it's giving "not me counting the thing, counting the absence of the thing." boolean modifier, obviously. πeβ turns on edge detection, meaning it only counts when there's a state transition. no transitions, no counting. it's a boolean modifier. π¦cβ sets the counter mask value. the mask acts like a threshold: the counter counts the number of cycles in which the number of occurrences of the event is greater or equal to that threshold. this one is an integer modifier and the values live in the range [0:255]. so yeah, actual numbers here, not just a toggle. πtβ measures on both threads at the same time, assuming hyper-threading is enabled. boolean modifier, bestie. π
π AUTHORS π
Stephane Eranian <eranian@gmail.com>
okay that's the whole page, bestie, you ate it up. π this one's signed off September, 2009, brought to you by the Linux Programmer's Manual as LIBPFM(3) β section 3 forever, iykyk. βπβ¨
π¦ 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