LIBPFM(3)

πŸ“¦
version 4.14.1 Β· 2 versions
  • 4.14.1 Β· arch rolling, centos-stream 10, centos-stream 9, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 4.13.0+git32-g0d4ed0e Β· ubuntu noble
, in arch rolling, centos-stream 10, centos-stream 9, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

libpfm_intel_icx_unc_pcu β€” bestie, this is the support for the Intel IcelakeX Server PCU uncore PMU. yes it's a mouthful. we'll get through it together 🫢


✨ SYNOPSIS ✨

#include <perfmon/pfmlib.h>
  • PMU name: icx_unc_pcu
  • PMU desc: Intel IcelakeX PCU uncore PMU

🌸 DESCRIPTION 🌸

okay so. this library? it supports the Intel IcelakeX PCU β€” that's the Power Control Unit β€” uncore PMU. no cap.

here's the tea πŸ“: there is one PCU per system. just one. and each PCU PMU implements 4 generic counters. that's it, that's the whole thing. four. iconic behavior honestly.


πŸ’… MODIFIERS πŸ’…

the following modifiers are supported on the Intel IcelakeX PCU uncore PMU. these are your little knobs, your little levers, your little slay buttons ✨

  • e β€” turns on edge detection, meaning it counts only when there's a state transition from no occurrence of the event to at least one occurrence. the way this works: you must pair it with a threshold modifier (t) whose value is greater or equal to one. it's a boolean modifier. fr fr.
  • t β€” sets the threshold value. when you set it to something non-zero, the counter counts the number of PCU clockticks in which the number of occurrences of the event is greater or equal to the threshold. it's an integer modifier, and its values live in the range [0:63]. that's the whole vibe check πŸŽ€
  • i β€” inverts the threshold (t) test, flipping it from strictly greater than to less or equal to. boolean modifier. simple as πŸ’…
  • occ_i β€” inverts the threshold (t) for occupancy events POWER_STATE_OCCUPANY test, going from strictly greater than to less or equal to. also a boolean modifier. (yes, that spelling is exactly how it's written, do not come for me 😭)
  • occ_e β€” enables edge detection for occupancy events POWER_STATE_OCCUPANCY, so it counts only when there's a state transition from no occurrence of the event to at least one occurrence. and same as e bestie: this one must be combined with a threshold modifier (t) with a value greater or equal to one. boolean modifier, periodt.
🚨 heads up: both e and occ_e are useless on their own β€” they require a threshold modifier (t) set to at least 1. don't skip that part, i'm begging πŸ™ˆ

πŸ‘‘ AUTHORS πŸ‘‘

Stephane Eranian <eranian@gmail.com> β€” the main character who made this happen πŸ’œ


and that's the whole page, bestie!! this was the LIBPFM(3) page from the Linux Programmer's Manual, dated November, 2023 🌈 thanks for reading, you ate that. go forth and count your counters πŸ¦‹βœ¨πŸ’–