LIBPFM(3)

πŸ’– NAME πŸ’–

libpfm_intel_ivb_unc β€” bestie, this is the support for the Intel Ivy Bridge uncore PMU πŸ’…


✨ SYNOPSIS ✨

#include <perfmon/pfmlib.h>

PMU name: ivb_unc_cbo0, ivb_unc_cbo1, ivb_unc_cbo2, ivb_unc_cbo3

PMU desc: Intel Ivy Bridge C-box uncore


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so. this library has your back for the Intel Ivy Bridge client part (model 58) uncore PMU 🫢. right now the support is limited to the Coherency Box, aka the C-Box, and it covers up to 4 physical cores. it's giving "we started with the important part" energy, ngl.

so every physical core has its own little C-Box bestie that it uses to talk to the L3 cache πŸ’¬. and the way that all the C-boxes support the same set of events?? iconic. BUT β€” and this is the plot twist 🫒 β€” the Core 0 C-box (snb_unc_cbo0) also supports one extra uncore clock ticks event: UNC_CLOCKTICKS. core 0 said main character energy and honestly? slay πŸ‘‘.


🌸 MODIFIERS 🌸

here's the modifiers that are supported on the Intel Ivy Bridge C-Box uncore PMU, bestie, no gatekeeping:

  • i β€” Invert the meaning of the event πŸ’«. the counter will now count cycles in which the event is not occurring. this is a boolean modifier.
  • 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 πŸ¦‹. this modifier must be combined with a counter mask modifier (m) with a value greater or equal to one. this is a boolean modifier.
  • c β€” Set the counter mask value πŸŽ€. the mask acts as a threshold. the counter will count the number of 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].
🚨 real talk: both the UNC_CBO_CACHE_LOOKUP and UNC_CBO_XSNP_RESPONSE events require two umasks to be valid. no cap.

for UNC_CBO_CACHE_LOOKUP, the first umask must be one of the MESI state umasks, and the second has to be one of the filters ✨.

for UNC_CBO_XSNP_RESPONSE, the first umask must be one of the snoop types, and the second has to be one of the filters ✨.

like. two umasks or it doesn't count. periodt πŸ’….


πŸ’œ AUTHORS πŸ’œ

Stephane Eranian <eranian@gmail.com> 🫢


and that's the whole vibe, bestie!! this page is from the Linux Programmer's Manual, it's LIBPFM(3), and it was written back in June, 2013 🌸 β€” go forth and profile your uncore like the icon you are πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from