LIBPFM(3)
πΈ LIBPFM π
β the libpfm_intel_icx_unc_cha era
okay bestie, so this is a page from the Linux Programmer's Manual, section 3 (that's the library-calls girlies), and it's literally all about libpfm_intel_icx_unc_cha β aka support for Intel IcelakeX Server CHA uncore PMU. no cap, that's the whole name. let's get into it π«Ά
β¨ NAME β¨
libpfm_intel_icx_unc_cha β support for Intel IcelakeX Server CHA uncore PMU
like. that's her. that's the function of the page. iconic π
π SYNOPSIS π
#include <perfmon/pfmlib.h>
- PMU name:
icx_unc_cha[0-39] - PMU desc:
Intel IcelakeX CHA uncore PMU
yes the include is literally just that one line, we love a minimal queen π
π¦ DESCRIPTION π¦
so the library supports the Intel IcelakeX CHA (that's coherency and home agent, for the uninitiated β iykyk) uncore PMU. π
here's the tea: there's one CHA-box PMU per physical core. which means there are up to forty identical CHA PMU instances, numbered from 0 up to possibly 39. forty of them. forty little guys. obsessed π
and on dual-socket systems, that number refers to the CHA PMUs on the socket where the program runs β so like, it's socket-local, it's not doing cross-socket shenanigans, periodt.
also each CHA PMU implements 4 generic counters. four. that's it. that's her budget. π
π₯ MODIFIERS π₯
these are the modifiers supported on the Intel IcelakeX CHA uncore PMU. pay attention bestie, there are three and they're all doing something:
eβ Enable edge detection. meaning: count only when there is a state transition from no occurrence of the event to at least one occurrence. she only counts the β¨moment of changeβ¨. this modifier must be combined with a threshold modifier (t) with a value greater or equal to one. this is a boolean modifier. (not, no party β that's the rule π¨)tβ Set the threshold value. when set to a non-zero value, the counter counts the number of CHA clockticks 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]. so yeah, 0 through 255, don't get cute with it πiβ Invert the threshold (t) test from strictly greater than to less or equal to. this is a boolean modifier. she flips the whole vibe of your threshold check π
lowkey important:ewithout atof at least1is not a thing. combine them. be a team player. π
π AUTHORS π
Stephane Eranian <eranian@gmail.com>
giving credit where credit is due, thank you legend π«‘
so that's the whole page bestie β libpfm_intel_icx_unc_cha, three modifiers, forty CHA instances, four counters each, and one very nice author. slay π
β¨
November, 2023 π β that's when this LIBPFM(3) page was living its truth, straight from the Linux Programmer's Manual. mwah, bye π¦π
π¦ 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