LIBPFM(3)
π LIBPFM(3) π
okay bestie, welcome to the Linux Programmer's Manual β this is the page for the libpfm family, and specifically the one about AMD's Fam17h Zen2 support. pull up a chair, grab a boba, we're doing this π§β¨
β¨ NAME β¨
libpfm_amd64_fam17h_zen2 β support for AMD64 Family 17h model 31h processors π¦
πΈ SYNOPSIS πΈ
#include <perfmon/pfmlib.h>
PMU name: amd64_fam17h_zen2
PMU desc: AMD64 Fam17h Zen2
π DESCRIPTION π
so basically, this library supports the AMD Family 17h processors Zen2 core PMU β and the way it does that? it works in both 32 and 64-bit modes. versatility icon, honestly π
π MODIFIERS π
here's the tea, these are the modifiers supported on the AMD64 Family 17h Zen2 core PMU:
uβ measures at user level, which includes privilege levels 1, 2, 3. this maps toPFM_PLM3. it's a boolean modifier, no cap.kβ measures at kernel level, which includes privilege level 0. this maps toPFM_PLM0. boolean modifier, periodt.hβ measures while executing in host mode (that's when you're using virtualization). this maps toPFM_PLMH. heads up: this modifier is only available starting with Fam10h. boolean modifier β¨gβ measures while executing in guest mode (again, virtualization vibes). this one's also only available starting with Fam10h. boolean modifier π¦iβ inverts the meaning of the event. so now the counter counts cycles in which the event is not occurring. boolean modifier, and honestly it's giving chaos in the best way πeβ enables edge detection, meaning it counts only when there's a state transition. boolean modifier π«cβ sets the counter mask value. the mask acts like a threshold: the counter counts the number of cycles 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]π₯
π AUTHORS π
Stephane Eranian <eranian@gmail.com> β thank you for your service, legend π«Ά
and that's the whole page, bestie!! this one's from December, 2019, it lives in the Linux Programmer's Manual as LIBPFM(3), and honestly? iconic. go forth and profile responsibly πβ¨π
π¦ 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