LIBPFM(3)

πŸ’– LIBPFM πŸ’–

okay bestie, welcome to the Linux Programmer's Manual glow-up edition β€” this is the page for LIBPFM(3), and we're about to get you fully acquainted with the Arm Neoverse V1 PMU. grab a snack, hydrate, and let's go 🫢✨


✨ NAME ✨

libpfm_arm_neoverse_v1 β€” the whole entire vibe is: support for the Arm Neoverse V1 core PMU. that's it, that's the girl πŸ’…


🌸 SYNOPSIS 🌸

first things first, you gotta invite the library to the function:

#include <perfmon/pfmlib.h>

and here's her little ID card, no cap:

  • PMU name: arm_v1
  • PMU desc: Arm Neoverse V1

πŸ¦‹ DESCRIPTION πŸ¦‹

so the library literally supports the Arm Neoverse V1 core PMU. iconic behavior, honestly.

this PMU is serving 6 counters and privilege levels filtering β€” yes, she does both, she's multi-talented πŸ’… she can also operate in both 32 and 64 bit modes, so whatever era you're living in, she's got you covered fr fr.


πŸŽ€ MODIFIERS πŸŽ€

here's where it gets juicy β€” these are the modifiers supported on ARM Neoverse V1, and every single one of them is a boolean modifier (so, on or off, yes or no, slay or not slay):

  • u β€” measure at the user level. this one corresponds to PFM_PLM3. πŸ’œ
  • k β€” measure at the kernel level. this one corresponds to PFM_PLM0. πŸ”₯
  • hv β€” measure at the hypervisor level. this one corresponds to PFM_PLMH. ✨

πŸ‘‘ AUTHORS πŸ‘‘

the masterminds behind all this, give them their flowers fr:

  • John Linford <jlinford@nvidia.com>
  • Stephane Eranian <eranian@gmail.com>

and that's the whole page, bestie β€” you ate that πŸ“πŸ’– this was the LIBPFM(3) manual page from August, 2022, and now you know her, you love her, you understand her. periodt. πŸ’…βœ¨πŸŒˆ