LIBPFM(3)
π LIBPFM(3) β the Linux Programmer's Manual glow-up π
okay bestie, welcome to the LIBPFM(3) page, straight outta the Linux Programmer's Manual. grab a boba, we're doing uncore PMU lore today π§β¨
πΈ NAME πΈ
libpfm_intel_skx_unc_imc β support for Intel Skylake X Server Integrated Memory Controller (IMC) uncore PMU π
β¨ SYNOPSIS β¨
#include <perfmon/pfmlib.h>
- PMU name:
skx_unc_imc[0-7] - PMU desc: Intel Skylake X Server IMC uncore PMU
π¦ DESCRIPTION π¦
so like, this library? it supports the Intel Skylake X Server Integrated Memory Controller (IMC) uncore PMU. that's the whole vibe. iconic behavior honestly π
π MODIFIERS π
these are the modifiers that are supported on Intel Skylake X server IMC uncore PMU, bestie β memorize them, they're not optional reading:
eβ Enable edge detection. Translation: it counts only when there's a state transition from no occurrence of the event to at least one occurrence. and no, you cannot just use it alone β it must be combined with a threshold modifier (t) with a value greater or equal to one. This is a boolean modifier. π«Άtβ Set the threshold value. When set to a non-zero value, the counter counts the number of IMC cycles in which the number of occurrences of the event is greater or equal to the threshold. This is an integer modifier with values in the range[0:255]. π’iβ Invert the meaning of the threshold or edge filter. If set, the event counts when strictly less than N occurrences occur per cycle if threshold is set to N. When invert is set, then threshold must be set to non-zero value. If set, the event counts when the event transitions from occurring to not occurring (falling edge) when edge detection is set. This is a boolean modifier. π
not me reading the i modifier three times. it flips the whole meaning, so if you set it with a threshold of N, you're counting when it's strictly less than N per cycle. invert + edge detection = falling edge, which is giving main character energy but backwards π
π AUTHORS π
Stephane Eranian <eranian@gmail.com>
and that's the page, fr fr. this one's from January, 2018, and the source/version tag on the tin is LIBPFM(3). slay, go count some memory controller cycles bestie πβ¨π¦
π¦ 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