LIBPFM(3)

πŸ’– LIBPFM β€” the libpfm_intel_hswep_unc_r2pcie era πŸ’–

okay bestie, welcome to the libpfm(3) manual page, Linux Programmer's Manual edition 🫢 this one's all about a very specific little diva of a PMU and we're gonna stan her properly ✨


✨ NAME ✨

libpfm_intel_hswep_unc_r2pcie β€” support for Intel Haswell-EP R2 PCIe uncore PMU πŸ’…

like, that's literally her whole job. supporting that one PMU. and she does it flawlessly. no cap.


🌸 SYNOPSIS 🌸

#include <perfmon/pfmlib.h>
PMU name: hswep_unc_r2pcie
PMU desc: Intel Haswell-EP R2 PCIe uncore PMU

see that? two whole identifiers. iconic. memorize them, you'll need them πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

So the library supports the Intel Haswell R2 PCIe uncore PMU. That's the vibe. That's the whole thing πŸ’œ

Lowkey important detail tho: this PMU model only exists on Haswell model 63. Like, she's exclusive. She does not show up anywhere else. If you're on literally any other model, don't even try it, she's not coming πŸ™ˆ


πŸ’… MODIFIERS πŸ’…

The following modifiers are supported on Intel Haswell R2PCIe uncore PMU β€” and bestie, there are three of them, and they have opinions about each other:

  • e β€” Enable edge detection. Basically: count only when there's a state transition from no occurrence of the event to at least one occurrence. She's counting the glow-up moment ✨
Real talk: this modifier must be combined with a threshold modifier (t) with a value greater than or equal to one. It cannot go solo. This is a boolean modifier.
  • t β€” Set the threshold value. When you set it to a non-zero value, the counter counts the number of R2PCIe cycles in which the number of occurrences of the event is greater or equal to the threshold. She's picky like that πŸ’…
This is an integer modifier with values in the range [0:15]. Yes, that's the whole range. Don't push it.
  • i β€” Invert the meaning of the threshold or edge filter. So if it's set, the event counts when strictly less than N occurrences occur per cycle, if threshold is set to N. When invert is set, then threshold must be set to a non-zero value. And if edge detection is set, then when invert is set, the event counts when the event transitions from occurring to not occurring β€” that's the falling edge, bestie, the sad part 😭 This is a boolean modifier.

πŸ‘‘ AUTHORS πŸ‘‘

Stephane Eranian <eranian@gmail.com> β€” the main character who wrote this whole thing, we love him, we thank him, periodt 🫢


and that's the page!! this was the Linux Programmer's Manual, version LIBPFM(3), dated May, 2015 🌈 ty for coming to my ted talk, go count some uncore events, slay πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from