LIBPFM(3)
β¨ LIBPFM β libpfm_intel_rapl β¨
okay bestie, welcome to the Intel RAPL page of libpfm(3), from the Linux Programmer's Manual. this one's short, it's sweet, and it's literally about counting how many Joules your machine is munching. let's get into it π
π NAME π
libpfm_intel_rapl β support for Intel RAPL PMU
π¦ SYNOPSIS π¦
#include <perfmon/pfmlib.h>
- PMU name:
rapl - PMU desc: Intel RAPL (Intel SandyBridge, IvyBridge, Haswell)
πΈ DESCRIPTION πΈ
so the library does support the Intel Running Average Power Limit (RAPL) energy consumption counters. no cap. it's giving "my CPU has a calorie tracker" energy π
this is a socket-level set of counters, and it reports energy consumption in Joules. there are up to 3 counters, and each one measures only one event. not a buffet, a tasting menu.
the following events are defined:
RAPL_ENERGY_CORESβ on all processors, the event reports the number of Joules consumed by all cores. (on all processors, bestie, all of them π«Ά)RAPL_ENERGYC_PKGβ on all processors, the event reports the number of Joules consumed by all the cores and the Last Level cache (L3). yes, the name in the source is literallyRAPL_ENERGYC_PKGwith that extraCin there β do not "fix" it, do not touch it, type it exactly like that or it will not work, periodt πRAPL_ENERGY_DRAMβ on server processors, the event reports the number of Joules consumed by the DRAM controller.
β οΈ okay important lore: by construction, these events are socket-level and can only be measured in system-wide mode. it is necessary and sufficient to measure only one CPU per socket to get meaningful results. one. per socket. that's it. don't be out here measuring forty CPUs and expecting different numbers, the vibe check will fail π
π MODIFIERS π
the PMU does not support any modifiers. that's the whole section. nothing. zero. empty. iconic of it honestly π
π AUTHORS π
Stephane Eranian <eranian@gmail.com>
π SEE ALSO π
literally nothing else listed here, this page is a solo act β¨
π and that's the whole page, bestie! this one came from the Linux Programmer's Manual, version LIBPFM(3), dated November, 2013. old but gold, fr fr. go measure some Joules and slay π¦π
π¦ 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