LIBPFM(3)

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

okay bestie, welcome to the LIBPFM(3) page, straight outta the Linux Programmer's Manual. grab a boba, we're doing uncore PMU lore today πŸ§‹βœ¨


🌸 NAME 🌸

libpfm_intel_skx_unc_imc β€” support for Intel Skylake X Server Integrated Memory Controller (IMC) uncore PMU πŸ’…


✨ SYNOPSIS ✨

#include <perfmon/pfmlib.h>
  • PMU name: skx_unc_imc[0-7]
  • PMU desc: Intel Skylake X Server IMC uncore PMU

πŸ¦‹ DESCRIPTION πŸ¦‹

so like, this library? it supports the Intel Skylake X Server Integrated Memory Controller (IMC) uncore PMU. that's the whole vibe. iconic behavior honestly πŸ‘‘


πŸŽ€ MODIFIERS πŸŽ€

these are the modifiers that are supported on Intel Skylake X server IMC uncore PMU, bestie β€” memorize them, they're not optional reading:

  • e β€” Enable edge detection. Translation: it counts only when there's a state transition from no occurrence of the event to at least one occurrence. and no, you cannot just use it alone β€” it must be combined with a threshold modifier (t) with a value greater or equal to one. This is a boolean modifier. 🫢
  • t β€” Set the threshold value. When set to a non-zero value, the counter counts the number of IMC cycles in which the number of occurrences of the event is greater or equal to the threshold. This is an integer modifier with values in the range [0:255]. πŸ”’
  • i β€” Invert the meaning of the threshold or edge filter. If 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 non-zero value. If set, the event counts when the event transitions from occurring to not occurring (falling edge) when edge detection is set. This is a boolean modifier. πŸ™ƒ
not me reading the i modifier three times. it flips the whole meaning, so if you set it with a threshold of N, you're counting when it's strictly less than N per cycle. invert + edge detection = falling edge, which is giving main character energy but backwards πŸ’€

πŸ‘‘ AUTHORS πŸ‘‘

Stephane Eranian <eranian@gmail.com>


and that's the page, fr fr. this one's from January, 2018, and the source/version tag on the tin is LIBPFM(3). slay, go count some memory controller cycles bestie πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from