LIBPFM(3)

πŸ’– LIBPFM(3) β€” the Linux Programmer's Manual glow-up πŸ’–

okay bestie, sit down, hydrate, and let me tell you about libpfm_intel_bdx_unc_irp ✨ this is the manual page for the perfmon library, and we're doing the Intel Broadwell Server IRP uncore PMU today. it's giving niche, it's giving hardware counters, it's giving iconic.


🌸 NAME 🌸

libpfm_intel_bdx_unc_irp β€” literally the support for the Intel Broadwell Server IRP uncore PMU. that's the whole vibe. no cap.


✨ SYNOPSIS ✨

#include <perfmon/pfmlib.h>

PMU name: bdx_unc_irp
PMU desc: Intel Broadwell Server IRP uncore PMU

so you include that header, and the PMU you're dealing with answers to the name bdx_unc_irp β€” described as the Intel Broadwell Server IRP uncore PMU. periodt. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so the library supports the Intel Broadwell Server IRP (IIO coherency) uncore PMU. 🫢

and here's the tea: this PMU model only exists on various Broadwell server models β€” specifically models 79 and 86. so if you're not on one of those, bestie, this is not your moment. πŸ™ˆ


πŸŽ€ MODIFIERS πŸŽ€

these are the modifiers that the Intel Broadwell server IRP uncore PMU supports. yes, all three. we love a short list. ⭐

  • e β€” enables edge detection, meaning you count only when there's a state transition from no occurrence of the event to at least one occurrence. πŸ¦‹ important: this modifier must be combined with a threshold modifier (t) whose value is greater than or equal to one. it's a boolean modifier, so it's on or it's off, no in-between.
  • t β€” sets the threshold value. when you set it to a non-zero value, the counter counts the number of cycles in which the number of occurrences of the event is greater than or equal to the threshold. it's an integer modifier and its values live in the range [0:255]. πŸ“
  • 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, given the threshold is set to N. and when invert is set, threshold must be set to a non-zero value β€” no sneaky zeroes, bestie, that's not allowed. if it's set and edge detection is also set, the event counts when the event transitions from occurring to not occurring (the falling edge). this one is a boolean modifier too.

πŸ‘‘ AUTHORS πŸ‘‘

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


heads up bestie: that e modifier is not a solo act β€” it needs t with a value >= 1, and if you flip on i, the threshold has to be non-zero. do not come for me when it doesn't work, the manual said it first. 😭

and that's the whole page, fr fr. this beauty comes from the Linux Programmer's Manual, version LIBPFM(3), dated June, 2017. πŸŽ€ go forth and count those uncore events, you absolute legend. πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from