Linux support for various PMUs

This lists Linux support for various chips and various kernel interfaces.

There's a related list for power measurement (RAPL) support available here.

The "perf_event" column tells which Linux kernel first supported the chip using the perf_event subsystem. Note this is complicated by distributions like RHEL which backports newe CPU support back to older kernels.

The "perfctr" column says whether the current "perfctr" patch supports this chip.

The "libpfm3" and "libpfm4" columns say whether those respective libraries support the events for the chip.

The "PAPI" column says whether the current version of PAPI supports things (in general PAPI should support any chip that has both libpfm4 and perf_event support. Adding support tends to be just adding the proper preset events in the papi_events.csv file).

x86

x86 AMD

NameFamilyModel perf_event NorthBridgeL2I/LLC perfctr libpfm31 libpfm4 PAPI
Athlon K7 6 * 2.6.31 n/a n/a yes yes yes yes
Opteron K8 15 * 2.6.31 n/an/a yes yes yes yes
Family 10h Rev B (Barcelona) 16 1,2,3 2.6.31 2.6.34n/a yes yes yes yes
Family 10h Rev C (Shanghai) 16 4,5,6 2.6.31 2.6.34n/a yes yes yes yes
Family 10h Rev D (Istanbul) 16 8 2.6.31 2.6.34n/a yes yes yes yes
Family 10h Rev D (Magny Cours) 16 9,10 2.6.31 2.6.34n/a yes yes yes yes
Family 10h Rev E (???) 16 ?? 2.6.31 2.6.34n/a yes yes yes yes
Family 11h Turion 17 * 2.6.31 2.6.34n/a yes no yes yes
Family 12h Llano 18 * 2.6.31 2.6.34n/a no no yes yes
Family 14h Bobcat 20 * 2.6.31? 2.6.34n/a no no yes yes
Family 15h Bulldozer 21 1 2.6.39 3.9 / 3.10n/a no yes yes yes
Family 15h Piledriver 21 2, 10, 13 2.6.39 3.9 / 3.10n/a no yes yes yes
Family 15h Steamroller 21 48 2.6.39 3.9 / 3.10n/a no yes yes yes
Family 15h Excavator 21 96 2.6.39 3.9 / 3.10n/a no yes yes yes
Family 15h ??? 21 112 2.6.39 3.9 / 3.10n/a no yes yes yes
Family 16h Jaguar 22 0 2.6.31? 3.103.10 no no yes yes
Family 16h Jaguar "Mullins" 22 48 2.6.31? 3.103.10 no no yes yes
Family 17h Zen1 / Zen+ 23 1-47 (0x01 - 0x2f) 4.9 4.114.11 no no yes yes
Family 17h Zen2 (Matisse, Castle Peak, Rome) 23 48-255 (0x30 - 0xff) 4.9? 4.11?4.11? no no yes ??
Family 19h Zen3 25 ? ? ?? no no yes ??
Notes:
  1. As shipped with PAPI
A more complete list of northbridge support can be found here.

x86 Intel

NameFamilyModel perf_event perf_event uncore perfctr libpfm36 libpfm4 PAPI
Pentium 5 1,2,4 no n/a yes no no no
Pentium Pro 6 1 2.6.31n/a yes yes yes yes
Pentium II 6 3,5,6 2.6.31n/a yes yes yes yes
Pentium III 6 7,8,10,11 2.6.31n/a yes yes yes yes
Pentium M 6 9,13 2.6.31n/a yes yes yes yes
Pentium 4 150,1,2 2.6.351 n/a yes yes yes yes
Pentium D 153,4,6 2.6.351 n/a yes yes yes yes
Core Duo 6 14 2.6.34 n/a yes yesyesyes
Core2 6 15,22,23,29 2.6.31 n/a yes yes yes yes
Atom 6 28,38,39,53 2.6.3110n/a yes10 yes10 yes yes
Atom Cedarview 6 54 3.6n/a no no yes yes
Atom Silvermont 655,74,77,90,93 3.12 no? no no yes yes
Atom Airmont "Braswell" 676 3.19?no? no no yes no
Atom Goldmont (Apollo Lake) 692, 95 4.7no? no no yes no
Atom Goldmont Plus (Gemini Lake) 6122 4.12no? no no no no
Atom Tremont 6134, 150, 156 ??no? ?? ?? ?? ??
Nehalem 6 26,30,31 2.6.317,8 ? yes8 yes yes yes
Nehalem EX 6 46 2.6.343 3.6 yes yes yes yes
Westmere 6 37,44 2.6.343 3.6 yes yes yes yes
Westmere EX (E7) 6 47 2.6.393 3.6 no no yes yes
Sandy Bridge 6 42 2.6.393 3.6 no no yes yes
Sandy Bridge EP 6 45 3.13 3.6 no no yes yes
Ivy Bridge 6 58 3.53.10 no no yes yes
Ivy Bridge EP ("IvyTown") 6 62 3.83.10 no no yes yes
Haswell 6 60,70 3.103.15/4.3 no no yes yes
Haswell ULT 6 69 3.103.15/4.3 no no yes yes
Haswell EP 6 63 3.103.18 no no yes yes
Broadwell 6 61 4.1/4.24.2 no no yes yes
Broadwell-H 6 71 4.1/4.24.3 no no yes yes
Broadwell-DE 6 86 4.1/4.24.3 no no yes yes
Broadwell EP 6 79 4.24.5 no no yes yes
Skylake Mobile 6 78 4.3 4.8 no no yes yes
Skylake H/S Desktop 6 94 4.3 4.8 no no yes yes
Skylake X Server 6 85 Stepping 0-4 4.6 4.9 no no yes yes
Kabylake 6 158 4.6 ?? no no yes yes
Coffeelake 6 158 Stepping 10-13 4.6 ?? no no yes yes
Kabylake L (Cofeelake L (step 9), Amberlake L (step 10), Whiskeylake L (step 11,12) 6 142 4.6 ?? no no yes yes
Cascadelake Server 6 85 Stepping 7 4.6 4.9 no no yes yes
Cooperlake Server 6 85 Stepping 11 ?? ?? ?? ?? ?? ??
Cometlake 6 165 ?? ?? ?? ?? ?? ??
Cometlake L 6 166 ?? ?? ?? ?? ?? ??
Cannonlake / Palm Cove 6 102 ?? ?? ?? ?? ?? ??
Icelake 6 106, 108, 125, 126, 157 ?? ?? ?? ?? ?? ??
Lakefield 6 138 ?? ?? ?? ?? ?? ??
Rocketlake 6 167 ?? ?? ?? ?? ?? ??
Tigerlake 6 140 (L), 141 ?? ?? ?? ?? ?? ??
Sapphirerapids X 6 143 ?? ?? ?? ?? ?? ??
Alderlake 6 151, 154, 190 ?? ?? ?? ?? ?? ??
Raptorlake 6 183, 186 ?? ?? ?? ?? ?? ??
Knights Landing 6 87 4.64.5 no no yes yes
Knights Mill 6 133 4.94.9 no no yes yes
Knights Corner 11 ?? 3.7 ? no no yes yes


Notes: A more complete list of uncore/offcore support can be found here.

x86 VIA

NameFamilyModel perf_event perfctr libpfm36 libpfm4 PAPI
C3 6 ? no yes no no no

x86 Cyrix

NameFamilyModel perf_event perfctr libpfm36 libpfm4 PAPI
6x86/MII/MIII 5 ? no yes no no no

ARM

NameFamily perf_event perfctr libpfm3 libpfm4 PAPI
Intel XScale 1 ARMv5 2.6.38 yes no no no
Intel XScale 2 ARMv5 2.6.38 yes no no no
ARM 1136 ARMv6 2.6.34 no no no no
ARM 1156 ARMv6 2.6.34 no no no no
ARM 1176 ARMv6 2.6.34 no no yes yes
ARM mpcore ARMv6 2.6.34 no no no no
ARM Cortex A5 ARMv7 3.1 no no no no
ARM Cortex A7 ARMv7 3.4 no no yes yes
ARM Cortex A8 ARMv7 2.6.341 no no yes yes
ARM Cortex A9 ARMv7 2.6.341 no no yes yes
ARM Cortex A12 ARMv7 3.15 no no no no
ARM Cortex A15 ARMv7 3.1 no no yes yes
Qualcomm Krait ARMv7 3.17 no no yes yes
Qualcomm Scoprion ARMv7 4.1 no no no no


  1. Note that Cortex A8 and Cortex A9 processors reportedly have a bug where PMU interrupts may be lost, making perf_event usage problematic.

ARM64

NameFamily perf_event perfctr libpfm3 libpfm4 PAPI
ARM Cortex A35 ARMv8 4.14 no no no no
ARM Cortex A53 ARMv8 3.7 no no yes yes
ARM Cortex A57 ARMv8 3.7 no no yes yes
ARM Cortex A72 ARMv8 4.5 no no no no
ARM Cortex A73 ARMv8 4.14 no no no no
Applied Micro Xgene ARMv8 3.7 no no yes yes
Broadcom Vulcan ARMv8 4.7 no no no no
Cavium ThunderX ARMv8 4.6 no no yes yes

Alpha

Name perf_event perfctr libpfm3 libpfm4 PAPI
EV5 (21164) no no no no no1
EV67 (21264) 2.6.36 no no no no1


Notes:
  1. Support removed from PAPI

AVR32


ARC

Name perf_event perfctr libpfm3 libpfm4 PAPI
ARCv2 4.3 no no no no



Blackfin

Name perf_event perfctr libpfm3 libpfm4 PAPI
Blackfin 3.0 no no no no



itanium

NameFamilyModel perf_event perfctr libpfm3 libpfm4 PAPI
itanium itanium * no no yesyes no
itanium2 itanium 2 * no no yesyesyes
monticeto itanium 2 ? no no yesyesyes



MIPS

Name perf_event perfctr libpfm31 libpfm4 PAPI
R10000 2.6.37 noyesyes no
R12000 no noyesyes no
RM7000 ? noyesyes no
RM9000 ? noyesyes no
SB1 2.6.37 noyesyes no
VR5432 ? noyesyes no
VR5500 ? noyesyes no
20Kc ? noyesyes no2
24K 2.6.37 noyesyes no
25Kf ? noyesyes no2
34K 2.6.37 noyesyes no2
5Kc ? noyesyes no2
74K 2.6.373 noyesyesyes
1004K 2.6.37 no no no no
Octeon 3.0? no no no no
SciCortex ? noyesyes no2


Notes:
  1. As shipped with PAPI
  2. Support removed in PAPI 4.0
  3. You really should be running a newer kernel, and multiplexing is still broken as of kernel 3.1. There are limitations with the MIPS implementation having to do with sched_clock() not being implemented.

POWER

Name perf_event perfctr libpfm32 libpfm4 PAPI
PPC604 no yes no no no1
PPC750 (G3) no yes no no no
PPC7400 (G4)2.6.31 yes no no no
PPC970 (G5)2.6.31 no yesyesyes
e500 2.6.34 no no no no
Cell ??? no yesyesyes
POWER3 no no no no no1
POWER4 2.6.31 yes 3 yesyes no1
POWER5 2.6.31 yes3 yesyesyes
POWER5+ 2.6.31 no yesyesyes
POWER6 2.6.31 no yesyesyes
POWER7 2.6.31 no yesyesyes
POWER8 3.10 no no yes yes
POWER9 4.8 no no yes yes


Notes:
  1. Support existed but is now removed from PAPI
  2. As shipped with PAPI
  3. With the perfctr 2.7.x branch

S390

Name perf_event perfctr libpfm3 libpfm4 PAPI
S390x 3.4 no noyes no



SH

Name perf_event perfctr libpfm3 libpfm4 PAPI
SH7750 2.6.33 no no no no
SH4-A 2.6.33 no no no no



SPARC

Name perf_event perfctr libpfm3 libpfm4 PAPI
Ultra I,II no noyesyesyes
Ultra III 2.6.32 noyesyesyes
Ultra 4+ 2.6.32 noyesyesyes
Niagara 2.6.32 noyesyes yes
Niagara 2 2.6.32 noyesyes no



Last updated 3 June 2022
Back to unofficial perf_events page