LIBPFM(3)
π LIBPFM(3) β the libpfm_intel_skx_unc_upi page, but make it make sense π
okay bestie, so this is a page from the Linux Programmer's Manual (yes, that's the manual name, we're being official for like two seconds) and it's literally all about libpfm_intel_skx_unc_upi β support for the Intel Skylake X Server UPI uncore PMU. ngl that's a mouthful, but we're gonna get through it together π«Ά
β¨ NAME β¨
libpfm_intel_skx_unc_upi β support for the Intel Skylake X Server UPI uncore PMU. that's it, that's the whole identity π
πΈ SYNOPSIS πΈ
#include <perfmon/pfmlib.h>
PMU name: skx_unc_upi[0-2] PMU desc: Intel Skylake X Server UPI uncore PMU
π¦ DESCRIPTION π¦
so basically the library is out here supporting the Intel Skylake X Server UPI uncore PMU. that's the vibe. that's what it does. iconic, honestly β¨
π MODIFIERS π
these are the modifiers you can throw at the Intel Skylake X server UPI uncore PMU, and yes every single one matters, don't skip:
eβ enable edge detection, meaning you only count when there's a state transition from zero occurrences of the event to at least one occurrence. heads up though: you must pair this with a threshold modifier (t) that has a value greater than or equal to one. it's a boolean modifier, no cap.tβ set the threshold value. when you set it to something non-zero, the counter counts the number of QPI cycles where the number of occurrences of the event is greater than or equal to the threshold. it's an integer modifier, and the valid values live in the range[0:255]. pick wisely bestie πiβ invert the meaning of the threshold or edge filter. if it's set, the event counts when strictly less than N occurrences happen per cycle (where threshold is set to N). when invert is set, threshold has to be set to a non-zero value, fr fr. and if edge detection is set, then setting this means the event counts when the event transitions from occurring to not occurring β that's a falling edge for those keeping score. boolean modifier, naturally π
π BASIC_HDR_MATCH events π
the library is also out here supporting the special RXL_BASIC_HDR_MATCH and TXL_BASIC_HDR_MATCH opcode matcher events. these ones ate, because they have so many more filters available β either as a modifier (listed below, don't worry) or as specific umasks.
on top of all the standard modifiers listed above βοΈ, these extra ones are available too:
rcsnidβ specify a RCS Node identifier, as an integer in the range[0-15]. Default: 0 πdnidβ specify a destination Node identifier, as an integer in the range[0-15]. Default: 0 π
π AUTHORS π
Stephane Eranian <eranian@gmail.com> β the main character who wrote this, we love them π
lowkey reminder: this whole page is LIBPFM(3), so if you're lost, you're in the right place bestie π§
and that's the whole page, no notes πβ¨ this was written back in January, 2018 and it's still sitting pretty under the LIBPFM(3) footer, so if you ever forget where you read it, iykyk. mwah, go count some QPI cycles π«Άπ
π¦ 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