LIBPFM(3)

πŸ’– libpfm(3) β€” the Intel IcelakeX Server UBOX uncore PMU page πŸ’–

okay bestie, welcome to the libpfm corner of the Linux Programmer's Manual 🌸 this one is specifically about libpfm_intel_icx_unc_ubox, and ngl it's niche but it's giving very much "I know things" energy. pull up a chair, we're learning ✨


✨ NAME ✨

libpfm_intel_icx_unc_ubox β€” the support for the Intel IcelakeX Server UBOX uncore PMU, and yes that's a whole mouthful, we love her anyway 🫢


🌈 SYNOPSIS 🌈

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

that's it, that's the whole summoning ritual πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so the library ships support for the Intel IcelakeX UBOX uncore PMU β€” and UBOX here means the System configuration controller, in case you were wondering what the acronym was doing πŸŽ€

here's the tea, fr fr:

  • there is one UBOX per processor πŸ‘‘
  • each UBOX PMU implements 4 generic counters β€” four. that's the whole counter budget, no cap πŸ“

so when you're counting stuff on a UBOX, you've got four slots to play with, and you should plan accordingly bestie πŸ’œ


πŸŽ€ MODIFIERS πŸŽ€

the following modifiers are supported on the Intel IcelakeX UBOX uncore PMU β€” these are your little knobs and switches, and the way that each one changes the counting behaviour is lowkey important, so let's go one by one 🌟

  • e β€” enables edge detection ✨ meaning you count only when there's a state transition: from the event not happening at all, to it happening at least once. it's giving "only count the moment it kicks off" energy. important though: this modifier must be combined with a threshold modifier (t) whose value is greater or equal to one β€” you can't run e solo, it needs its friend πŸ™ˆ. this is a boolean modifier, so it's on or off, no in-between πŸ’…
  • t β€” sets the threshold value. when you set it to a non-zero value, the counter counts the number of UBOX clockticks in which the number of occurrences of the event is greater or equal to the threshold πŸ•°οΈ think of it like "only start counting when it's happened this many times". this is an integer modifier with values in the range [0:255] β€” so 0 through 255 inclusive, stay in your lane bestie 🎯
  • i β€” inverts the threshold (t) test πŸ”„ it flips things from strictly greater than to less or equal to. so instead of "count when it's above the bar", it becomes "count when it's at or below the bar". this is a boolean modifier too, just flip it and go ✨
ok so quick recap of the trio: e is the edge-detection girly, t is the threshold girly, i is the invert-the-test girly. and remember β€” e will NOT work without t being at least 1, that's the rule and we respect the rule πŸ’–

πŸ’œ AUTHORS πŸ’œ

  • Stephane Eranian <eranian@gmail.com> β€” thank you for the lore, icon πŸ‘‘

and that's the page bestie!! πŸ¦‹ this was pulled from the Linux Programmer's Manual, dated November, 2023, and it lives under LIBPFM(3). go forth and count your UBOX events, four counters at a time, slay πŸ’…βœ¨πŸŒΈ