LIBPFM(3)

πŸ’… LIBPFM β€” the libpfm_intel_bdx_unc_ubo page, bestie edition

okay so this is a page from the Linux Programmer's Manual, section 3 (that's the library section, iykyk). It's all about one very specific little PMU and honestly? she's niche but she's serving.


✨ NAME ✨

libpfm_intel_bdx_unc_ubo β€” support for the Intel Broadwell Server U-Box uncore PMU πŸ¦‹


🌸 SYNOPSIS 🌸

#include <perfmon/pfmlib.h>

PMU name: bdx_unc_ubo PMU desc: Intel Broadwell Server U-Box uncore PMU


πŸ’– DESCRIPTION πŸ’–

So the library supports the Intel Broadwell server system configuration unit (U-Box) uncore PMU. That's the whole vibe.

And like… this PMU model only exists on various Broadwell server models β€” specifically 79 and 86. Not 79-and-a-half, not 86-adjacent. Those two. Periodt. πŸ’€


πŸŽ€ MODIFIERS πŸŽ€

Here's the lineup of modifiers supported on the Intel Broadwell server U-Box uncore PMU. Every single one, no skipping, we don't do that here:

  • e β€” Enables edge detection, which means it counts only when there's a state transition from no occurrence of the event to at least one occurrence. Iconic, but she's got rules: this modifier must be combined with a threshold modifier (t) with a value greater than or equal to 1. It's a boolean modifier. 🫢
  • t β€” Sets the threshold value. When you set it 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 the values live in the range [0:15]. Yes, 16 whole options. Slay. ✨
  • i β€” Inverts the meaning of the threshold or edge filter. If it's set, the event counts when strictly less than N occurrences happen per cycle, if threshold is set to N. Heads up though: when invert is set, then threshold must be set to a non-zero value. And if edge detection is set, then setting this makes the event count when the event transitions from occurring to not occurring β€” that's a falling edge πŸ“. It's a boolean modifier.
ngl bestie, e and i are a package deal situation. Don't come crying to me when your event counts nothing because you set edge detection with no threshold. The manpage said it, I said it, it's canon. 😭

πŸ‘‘ AUTHORS πŸ‘‘

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


and that's the page, bestie!! ✨ this was section 3 of the Linux Programmer's Manual, dated June, 2017, and yeah β€” it's a LIBPFM(3) situation. go forth and count your uncore events responsibly πŸŽ€πŸ’…

πŸ“¦ where this page comes from