LIBPFM(3)

πŸ’– LIBPFM β€” libpfm_intel_icx_unc_iio πŸ’–

okay bestie, this is a page from the Linux Programmer's Manual (that's the manual name, she's fancy like that ✨), and today's main character is libpfm_intel_icx_unc_iio β€” the support page for the Intel IcelakeX Server IIO uncore PMU. yes that's a mouthful. we're doing it anyway. 🫢


✨ NAME ✨

libpfm_intel_icx_unc_iio β€” support for Intel IcelakeX Server IIO uncore PMU

like. that's her. that's the whole vibe. she's here to help you count things in an IIO uncore PMU and she does it flawlessly. πŸ’…


🌸 SYNOPSIS 🌸

#include <perfmon/pfmlib.h>
PMU name: icx_unc_iio[0-5]
PMU desc: Intel IcelakeX IIO uncore PMU

so you include the header, and the PMU answers to the name icx_unc_iio[0-5] β€” yeah, that bracket situation means there's a whole little squad of them, 0 through 5, no cap. πŸ“šβœ¨


πŸ¦‹ DESCRIPTION πŸ¦‹

The library supports the Intel IcelakeX IIO (I/O controller) uncore PMU. literally that's the job, that's what she does, and she ate. πŸ”₯

Each IIO PMU implements 4 generic counters plus free running counters β€” and okay, gentle heads up, the free running counters are not yet supported by libpfm4. πŸ™ˆ not a vibe, but it is what it is.

Also important, bestie: the current version of libpfm4 does not expose the fc_mask and ch_mask filters. why? because they're hardcoded in the events the library provides. so you can't tweak them, they're already decided for you. it's giving "the library made that choice, and honestly, we respect it." πŸ‘‘


πŸ’… MODIFIERS πŸ’…

The following modifiers are supported on Intel IcelakeX IIO uncore PMU β€” these are your little seasoning packets, use them right:

  • e β€” Enable edge detection, i.e., count only when there is a state transition from no occurrence of the event to at least one occurrence. This modifier must be combined with a threshold modifier (t) with a value greater or equal to one. This is a boolean modifier. so like, she only counts the moment it goes from zero to something. a glow-up moment. ⭐
  • t β€” Set the threshold value. When set to a non-zero value, the counter counts the number of IIO clockticks 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]. remember that range, bestie, it stops at 255. 🌈
  • i β€” Invert the threshold (t) test from strictly greater than to less or equal to. This is a boolean modifier. she flips the whole comparison, iconic behavior. πŸ”„
⚠️ real talk: e does not work alone. it must be paired with t set to 1 or higher, or it's not doing anything for you. no solo performances allowed. πŸŽ€

πŸŽ€ AUTHORS πŸŽ€

Stephane Eranian <eranian@gmail.com>

shoutout to the author, we love a legend. πŸ‘‘


and that's the whole page, bestie!! November, 2023 energy, straight from the Linux Programmer's Manual, LIBPFM(3) β€” go forth and count your uncore events, you absolute genius. mwah. πŸ’–βœ¨πŸ¦‹