LIBPFM(3)
LIBPFM π (that's the Linux Programmer's Manual, bestie, section 3)
okay so first things first: this whole page is about libpfm_intel_ivbep_unc_pcu β the support for the Intel Ivy Bridge-EP Power Controller Unit (PCU) uncore PMU. say that five times fast. i'll wait. π«Ά
β¨ NAME β¨
libpfm_intel_ivbep_unc_pcu β support for Intel Ivy Bridge-EP Power Controller Unit (PCU) uncore PMU
like. that's the whole name. it's long but it's hers. π
πΈ SYNOPSIS πΈ
#include <perfmon/pfmlib.h>
PMU name: ivbep_unc_pcu PMU desc: Intel Ivy Bridge-EP PCU uncore PMU
π¦ DESCRIPTION π¦
so the library supports the Intel Ivy Bridge Power Controller Unit uncore PMU. that's the vibe. π§
and here's the tea: this PMU model only exists on Ivy Bridge model 62. like, if you're not on model 62, this is not your moment. no cap.
π MODIFIERS π
here are the modifiers that this Intel Ivy Bridge PCU uncore PMU supports. yes, all of them. i would never gatekeep:
eβ turn on edge detection. translation: it only counts when there's a state transition from no occurrence of the event to at least one occurrence. and listen β this modifier must be combined with a threshold modifier (t) whose value is greater than or equal to one. it's a boolean modifier, so it's giving on/off energy. β¨tβ set the threshold value. when it's set to a non-zero value, the counter counts the number of HA cycles in which the number of occurrences of the event is greater than or equal to the threshold. it's an integer modifier and its values live in the range[0:15]. πffβ turn on frequency band filtering. this one is picky: it applies only to theUNC_P_FREQ_BANDx_CYCLESevents, wherexis[0-3]. it expects an integer in the range[0-255], and that value gets interpreted as a frequency value to be multiplied by100Mhz. so if the value is32, then all cycles where the processor is running at3.2GHzand more are counted. math is math. π₯
π Frequency band filtering π
okay so there are 3 events which support frequency band filtering, namely, UNC_P_FREQ_BAND0_CYCLES, UNC_P_FREQ_BAND1_CYCLES, UNC_P_FREQ_BAND2_CYCLES, UNC_P_FREQ_BAND3_CYCLES. (yes bestie i know, it says 3 and then lists 4. i'm just the messenger. π)
the frequency filter β available via the ff modifier β is stored into a PMU shared register which holds all 4 possible frequency bands, one per event. however, the library generates the encoding for each event individually, because it processes events one at a time. so the caller, or the underlying kernel interface, may have to merge the band filter settings to program the filter register properly. it's giving teamwork. π«Ά
π AUTHORS π
- Stephane Eranian
<eranian@gmail.com>
lowkey important: this page is from February, 2014 and it belongs to LIBPFM(3), the Linux Programmer's Manual. so that's the source, the version and the date, all wrapped up in a cute little sign-off. mwah. πβ¨ππ¦πΈ
π¦ 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