LIBPFM(3)
π LIBPFM(3) β the Intel IcelakeX IRP uncore PMU page, but make it cute π
okay bestie, so this one lives in the Linux Programmer's Manual section 3, and it's literally all about one lil' library entry: libpfm_intel_icx_unc_irp. Yes it's a mouthful. Yes it's iconic. Let's get into it π«Ά
β¨ NAME β¨
libpfm_intel_icx_unc_irp β support for the Intel IcelakeX Server IRP uncore PMU π
πΈ SYNOPSIS πΈ
#include <perfmon/pfmlib.h>
PMU name: icx_unc_irp[0-5]
PMU desc: Intel IcelakeX IRP uncore PMU
π¦ DESCRIPTION π¦
So the library supports the Intel IcelakeX IRP (IIO Ring Port) uncore PMU, which is giving very much "niche but powerful" energy β¨
There's one IRP per IIO. Not two. Not a crowd. Just one. π
And every single IRP PMU implements 4 generic counters. Four. That's your whole budget, bestie, spend it wisely π
π MODIFIERS π
These are the modifiers supported on the Intel IcelakeX IRP uncore PMU. Learn them, love them, they're your besties now π
eβ Enable edge detection. Translation: count only when there's a state transition, going from no occurrence of the event to at least one occurrence. It's giving glow-up moment for your counter β¨
β οΈ Real talk though: this modifier must be combined with a threshold modifier (t) with a value greater or equal to one. Don't skip that part, fr fr. It's a boolean modifier.
tβ Set the threshold value. When you set it to a non-zero value, the counter counts the number of IRP clockticks in which the number of occurrences of the event is greater or equal to the threshold. That's the whole vibe. It's an integer modifier with values in the range[0:255]πiβ Invert the threshold (t) test, flipping it from strictly greater than to less or equal to. Chaotic? A little. Useful? Absolutely. It's a boolean modifier π
π AUTHORS π
- Stephane Eranian
<eranian@gmail.com>
and that's the whole page, no cap π§ this one's from the Linux Programmer's Manual, dated November, 2023, and it's the LIBPFM(3) page β slay, bye 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 trixie: libpfm4-dev 4.13.0+git99-gc5587f9-1 Β· MIT
- 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.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
- 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