LIBPFM(3)

πŸ’… LIBPFM(3) β€” bestie edition

okay so this is a page from the libpfm manual (Linux Programmer's Manual, section 3, the "library calls" section, iykyk), and it's all about one very specific little guy: the Intel Skylake X Server U-Box uncore PMU. yes the whole page. no I will not be normal about it. 🌸


✨ NAME ✨

libpfm_intel_skx_unc_ubo β€” support for Intel Skylake X Server U-Box uncore PMU

like... that's the name. that's literally it. she's a mouthful and she knows it. πŸ’œ


πŸ¦‹ SYNOPSIS πŸ¦‹

the way you get to her:

#include <perfmon/pfmlib.h>

and her little ID card:

  • PMU name: skx_unc_ubo
  • PMU desc: Intel Skylake X Server U-Box uncore PMU

πŸ‘‘ DESCRIPTION πŸ‘‘

so the library does support the Intel Skylake X server system configuration unit (U-Box) uncore PMU. that's the whole description. short, sweet, iconic, ate. πŸ”₯

no cap β€” U-Box, uncore, Skylake X server. if that's your situation, congrats, this is your girl. πŸŽ€


🌈 MODIFIERS 🌈

here's where it gets juicy. these are the modifiers supported on the Intel Skylake X server U-Box uncore PMU, and you're gonna want to know all three because they do NOT play the same. ✨

  • e β€” turn on edge detection, i.e. count only when there's a state transition from no occurrence of the event to at least one occurrence. πŸ¦‹ big catch though: this modifier must be combined with a threshold modifier (t) with a value greater than or equal to one. it's a boolean modifier, so it's just on/off energy.
  • t β€” set 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, values in the range [0:15]. that's fifteen max bestie, don't get greedy. πŸ’…
  • 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 if threshold is set to N. when invert is set, then threshold must be set to a non-zero value. also, if it's set, the event counts when the event transitions from occurring to not occurring (falling edge) when edge detection is set. it's a boolean modifier. πŸ™ˆ
real talk: e without t (β‰₯ 1) is a no, and i without a non-zero t is also a no. read the modifiers, love, they're not decorative. 😭

πŸ’– AUTHORS πŸ’–

Stephane Eranian <eranian@gmail.com> β€” thank you for your service, king. 🫢


and that's the page, bestie. written up in January, 2018, from the Linux Programmer's Manual, section 3, under the name LIBPFM(3). go forth and count your uncore events. slay. β­πŸ§šπŸ’œ

πŸ“¦ where this page comes from