LIBPFM(3)

πŸ’– LIBPFM(3) β€” the QPI uncore era πŸ’–

okay bestie, welcome to the Linux Programmer's Manual ✨ you're reading the page for libpfm_intel_snbep_unc_qpi, which is the little corner of libpfm that handles the Intel Sandy Bridge-EP QPI uncore PMU. yes, that's a lot of words. no, it's not that deep. let's go 🫢


🌸 NAME 🌸

libpfm_intel_snbep_unc_qpi β€” support for the Intel Sandy Bridge-EP QPI uncore PMU

like... that's literally the whole job description. it supports the thing. periodt πŸ’…


✨ SYNOPSIS ✨

#include <perfmon/pfmlib.h>

PMU name: snbep_unc_qpi0, snbep_unc_qpi1

PMU desc: Intel Sandy Bridge-EP QPI uncore PMU

two PMUs, not one. don't forget the 0 and the 1, bestie, or you'll be out here querying a PMU that does not exist and feeling goofy 😭


πŸ¦‹ DESCRIPTION πŸ¦‹

so. this library supports the Intel Sandy Bridge Power QPI uncore PMU 🌈

here's the vibe check: this PMU model only exists on Sandy Bridge model 45. not 42, not 47, not your cousin's laptop. model 45. if you don't have that, this page is not for you and honestly that's okay πŸŽ€

and like, there are two QPI PMUs per processor socket β€” that's your snbep_unc_qpi0 and snbep_unc_qpi1 right there. two besties. per socket. iconic πŸ‘‘


πŸ’… MODIFIERS πŸ’…

the following modifiers are supported on the Intel Sandy Bridge QPI uncore PMU:

  • i β€” invert the meaning of the event πŸ”„ the counter will now count QPI cycles in which the event is not occurring. it's a boolean modifier, so it's just on or off, no in-between, no drama.
  • e β€” enable edge detection ✨ i.e. count only when there's a state transition from no occurrence of the event to at least one occurrence. and listen β€” this modifier must be combined with a threshold modifier (t) with a value greater or equal to 1. not optional. not "eh probably fine". it's required, fr fr πŸ™ˆ it's a boolean modifier.
  • t β€” set the threshold value 🎚️ when set to a non-zero value, the counter counts the number of QPI 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].
okay so real talk: t is the one that needs a number, i and e are just vibes-on/vibes-off, and e is lowkey nothing without t. that's the whole modifier situation. slay.

πŸ‘‘ AUTHORS πŸ‘‘

Stephane Eranian <eranian@gmail.com>


and that's the page, bestie 🫢 this was LIBPFM(3) from the Linux Programmer's Manual, dated August, 2012 β€” shoutout to the archives, she's a vintage queen and she still ate πŸŒΈπŸ’– mwah, go query some QPI counters responsibly ⭐

πŸ“¦ where this page comes from