LIBPFM(3)

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

okay bestie, welcome to the LIBPFM(3) page, section 3 of the Linux Programmer's Manual, and no we are NOT skipping anything, this is a full tour 🫢


✨ NAME ✨

libpfm_intel_bdx_unc_qpi β€” it's giving support for Intel Broadwell Server QPI uncore PMU πŸ’…


🌸 SYNOPSIS 🌸

#include <perfmon/pfmlib.h>

PMU name: bdx_unc_qpi0, bdx_unc_qpi1
PMU desc: Intel Broadwell Server QPI uncore PMU

like, that's the whole vibe. two PMU names, one iconic description ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

So the library supports the Intel Broadwell Server QPI uncore PMU. Periodt. πŸŽ€

And bestie, listen β€” this PMU model only exists on various Broadwell server models (79, 86). Not 79 through 86, not "around there", literally those two numbers. If you're on anything else, this is not your moment, iykyk πŸ’€


πŸ‘‘ MODIFIERS πŸ‘‘

The following modifiers are supported on the Broadwell server QPI uncore PMU β€” there are exactly three, and they're all kinda extra, so let's go one by one πŸ“

  • e β€” Enable edge detection, aka count only when there's a state transition from no occurrence of the event to at least one occurrence. Very "glow up" of it. But lowkey important: this modifier must be combined with a threshold modifier (t) with a value greater than or equal to one. 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 QPI cycles in which the number of occurrences of the event is greater than or equal to the threshold. This is an integer modifier with values in the range [0:255]. Slay. πŸ”₯
  • i β€” Invert the meaning of the threshold or edge filter. If it's set, the event counts when strictly less than N occurrences occur per cycle, when threshold is set to N. And heads up: when invert is set, then threshold must be set to a non-zero value, no exceptions bestie πŸ™ˆ. 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 is a boolean modifier πŸ’œ
ngl, e and i are out here with real requirements attached, so don't just sprinkle them on and hope for the best. e needs t >= 1, and i needs t non-zero. Read the fine print, main character energy includes reading the fine print 😭

🌈 AUTHORS 🌈

Stephane Eranian <eranian@gmail.com> β€” the icon, the legend, the one who wrote this whole thing πŸ’–


okay that's the page!! πŸŽ€ this was the June, 2017 edition of LIBPFM(3) from the Linux Programmer's Manual, so go forth, count those QPI cycles, and remember: [0:255], falling edges, and threshold values are all part of your story now πŸ¦‹πŸ’…βœ¨

πŸ“¦ where this page comes from