2019-05-19 13:07:45 +01:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2015-07-06 12:23:53 +01:00
|
|
|
#
|
|
|
|
|
# Performance Monitor Drivers
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
menu "Performance monitor support"
|
2017-06-13 13:45:51 +01:00
|
|
|
depends on PERF_EVENTS
|
2015-07-06 12:23:53 +01:00
|
|
|
|
2018-02-15 18:51:42 +00:00
|
|
|
config ARM_CCI_PMU
|
2018-05-14 14:34:53 +01:00
|
|
|
tristate "ARM CCI PMU driver"
|
|
|
|
|
depends on (ARM && CPU_V7) || ARM64
|
2018-02-15 18:51:42 +00:00
|
|
|
select ARM_CCI
|
2018-05-14 14:34:53 +01:00
|
|
|
help
|
|
|
|
|
Support for PMU events monitoring on the ARM CCI (Cache Coherent
|
|
|
|
|
Interconnect) family of products.
|
|
|
|
|
|
|
|
|
|
If compiled as a module, it will be called arm-cci.
|
2018-02-15 18:51:42 +00:00
|
|
|
|
|
|
|
|
config ARM_CCI400_PMU
|
2018-05-14 14:34:53 +01:00
|
|
|
bool "support CCI-400"
|
|
|
|
|
default y
|
|
|
|
|
depends on ARM_CCI_PMU
|
2018-02-15 18:51:42 +00:00
|
|
|
select ARM_CCI400_COMMON
|
|
|
|
|
help
|
2018-05-14 14:34:53 +01:00
|
|
|
CCI-400 provides 4 independent event counters counting events related
|
|
|
|
|
to the connected slave/master interfaces, plus a cycle counter.
|
2018-02-15 18:51:42 +00:00
|
|
|
|
|
|
|
|
config ARM_CCI5xx_PMU
|
2018-05-14 14:34:53 +01:00
|
|
|
bool "support CCI-500/CCI-550"
|
|
|
|
|
default y
|
|
|
|
|
depends on ARM_CCI_PMU
|
2018-02-15 18:51:42 +00:00
|
|
|
help
|
2018-05-14 14:34:53 +01:00
|
|
|
CCI-500/CCI-550 both provide 8 independent event counters, which can
|
|
|
|
|
count events pertaining to the slave/master interfaces as well as the
|
|
|
|
|
internal events to the CCI.
|
2018-02-15 18:51:42 +00:00
|
|
|
|
2018-02-15 18:51:41 +00:00
|
|
|
config ARM_CCN
|
|
|
|
|
tristate "ARM CCN driver support"
|
2021-10-01 18:48:46 +08:00
|
|
|
depends on ARM || ARM64 || COMPILE_TEST
|
2018-02-15 18:51:41 +00:00
|
|
|
help
|
|
|
|
|
PMU (perf) driver supporting the ARM CCN (Cache Coherent Network)
|
|
|
|
|
interconnect.
|
|
|
|
|
|
2020-09-18 14:28:38 +01:00
|
|
|
config ARM_CMN
|
|
|
|
|
tristate "Arm CMN-600 PMU support"
|
2021-12-03 11:44:52 +00:00
|
|
|
depends on ARM64 || COMPILE_TEST
|
2020-09-18 14:28:38 +01:00
|
|
|
help
|
|
|
|
|
Support for PMU events monitoring on the Arm CMN-600 Coherent Mesh
|
|
|
|
|
Network interconnect.
|
|
|
|
|
|
2024-09-04 18:34:03 +01:00
|
|
|
config ARM_NI
|
|
|
|
|
tristate "Arm NI-700 PMU support"
|
|
|
|
|
depends on ARM64 || COMPILE_TEST
|
|
|
|
|
help
|
|
|
|
|
Support for PMU events monitoring on the Arm NI-700 Network-on-Chip
|
|
|
|
|
interconnect and family.
|
|
|
|
|
|
2015-07-06 12:23:53 +01:00
|
|
|
config ARM_PMU
|
2017-06-13 13:45:51 +01:00
|
|
|
depends on ARM || ARM64
|
2015-07-06 12:23:53 +01:00
|
|
|
bool "ARM PMU framework"
|
|
|
|
|
default y
|
|
|
|
|
help
|
|
|
|
|
Say y if you want to use CPU performance monitors on ARM-based
|
|
|
|
|
systems.
|
|
|
|
|
|
2024-06-26 16:32:27 -06:00
|
|
|
config ARM_V6_PMU
|
|
|
|
|
depends on ARM_PMU && (CPU_V6 || CPU_V6K)
|
|
|
|
|
def_bool y
|
|
|
|
|
|
|
|
|
|
config ARM_V7_PMU
|
|
|
|
|
depends on ARM_PMU && CPU_V7
|
|
|
|
|
def_bool y
|
|
|
|
|
|
|
|
|
|
config ARM_XSCALE_PMU
|
|
|
|
|
depends on ARM_PMU && CPU_XSCALE
|
|
|
|
|
def_bool y
|
|
|
|
|
|
2022-02-18 16:46:54 -08:00
|
|
|
config RISCV_PMU
|
|
|
|
|
depends on RISCV
|
|
|
|
|
bool "RISC-V PMU framework"
|
|
|
|
|
default y
|
|
|
|
|
help
|
|
|
|
|
Say y if you want to use CPU performance monitors on RISCV-based
|
|
|
|
|
systems. This provides the core PMU framework that abstracts common
|
|
|
|
|
PMU functionalities in a core library so that different PMU drivers
|
|
|
|
|
can reuse it.
|
|
|
|
|
|
2022-02-18 16:46:55 -08:00
|
|
|
config RISCV_PMU_LEGACY
|
|
|
|
|
depends on RISCV_PMU
|
|
|
|
|
bool "RISC-V legacy PMU implementation"
|
|
|
|
|
default y
|
|
|
|
|
help
|
|
|
|
|
Say y if you want to use the legacy CPU performance monitor
|
|
|
|
|
implementation on RISC-V based systems. This only allows counting
|
|
|
|
|
of cycle/instruction counter and doesn't support counter overflow,
|
|
|
|
|
or programmable counters. It will be removed in future.
|
|
|
|
|
|
2022-02-18 16:46:57 -08:00
|
|
|
config RISCV_PMU_SBI
|
|
|
|
|
depends on RISCV_PMU && RISCV_SBI
|
|
|
|
|
bool "RISC-V PMU based on SBI PMU extension"
|
|
|
|
|
default y
|
|
|
|
|
help
|
|
|
|
|
Say y if you want to use the CPU performance monitor
|
|
|
|
|
using SBI PMU extension on RISC-V based systems. This option provides
|
|
|
|
|
full perf feature support i.e. counter overflow, privilege mode
|
|
|
|
|
filtering, counter configuration.
|
|
|
|
|
|
2024-02-29 15:27:17 +08:00
|
|
|
config STARFIVE_STARLINK_PMU
|
2024-03-18 15:35:04 +00:00
|
|
|
depends on ARCH_STARFIVE || COMPILE_TEST
|
|
|
|
|
depends on 64BIT
|
2024-02-29 15:27:17 +08:00
|
|
|
bool "StarFive StarLink PMU"
|
|
|
|
|
help
|
|
|
|
|
Provide support for StarLink Performance Monitor Unit.
|
|
|
|
|
StarLink Performance Monitor Unit integrates one or more cores with
|
|
|
|
|
an L3 memory system. The L3 cache events are added into perf event
|
|
|
|
|
subsystem, allowing monitoring of various L3 cache perf events.
|
|
|
|
|
|
2024-02-22 16:39:43 +08:00
|
|
|
config ANDES_CUSTOM_PMU
|
|
|
|
|
bool "Andes custom PMU support"
|
|
|
|
|
depends on ARCH_RENESAS && RISCV_ALTERNATIVE && RISCV_PMU_SBI
|
|
|
|
|
default y
|
|
|
|
|
help
|
|
|
|
|
The Andes cores implement the PMU overflow extension very
|
|
|
|
|
similar to the standard Sscofpmf and Smcntrpmf extension.
|
|
|
|
|
|
|
|
|
|
This will patch the overflow and pending CSRs and handle the
|
|
|
|
|
non-standard behaviour via the regular SBI PMU driver and
|
|
|
|
|
interface.
|
|
|
|
|
|
|
|
|
|
If you don't know what to do here, say "Y".
|
|
|
|
|
|
2017-04-11 09:39:55 +01:00
|
|
|
config ARM_PMU_ACPI
|
|
|
|
|
depends on ARM_PMU && ACPI
|
|
|
|
|
def_bool y
|
|
|
|
|
|
2019-03-26 15:17:51 +00:00
|
|
|
config ARM_SMMU_V3_PMU
|
|
|
|
|
tristate "ARM SMMUv3 Performance Monitors Extension"
|
2023-07-06 11:23:05 +02:00
|
|
|
depends on ARM64 || (COMPILE_TEST && 64BIT)
|
2022-11-11 14:54:40 +01:00
|
|
|
depends on GENERIC_MSI_IRQ
|
2019-03-26 15:17:51 +00:00
|
|
|
help
|
|
|
|
|
Provides support for the ARM SMMUv3 Performance Monitor Counter
|
|
|
|
|
Groups (PMCG), which provide monitoring of transactions passing
|
|
|
|
|
through the SMMU and allow the resulting information to be filtered
|
|
|
|
|
based on the Stream ID of the corresponding master.
|
|
|
|
|
|
2023-03-17 15:50:20 -04:00
|
|
|
config ARM_PMUV3
|
2023-03-17 15:50:26 -04:00
|
|
|
depends on HW_PERF_EVENTS && ((ARM && CPU_V7) || ARM64)
|
2023-03-17 15:50:20 -04:00
|
|
|
bool "ARM PMUv3 support" if !ARM64
|
2023-03-17 15:50:26 -04:00
|
|
|
default ARM64
|
2023-03-17 15:50:20 -04:00
|
|
|
help
|
|
|
|
|
Say y if you want to use the ARM performance monitor unit (PMU)
|
|
|
|
|
version 3. The PMUv3 is the CPU performance monitors on ARMv8
|
|
|
|
|
(aarch32 and aarch64) systems that implement the PMUv3
|
|
|
|
|
architecture.
|
|
|
|
|
|
2018-01-02 11:25:33 +00:00
|
|
|
config ARM_DSU_PMU
|
|
|
|
|
tristate "ARM DynamIQ Shared Unit (DSU) PMU"
|
|
|
|
|
depends on ARM64
|
|
|
|
|
help
|
|
|
|
|
Provides support for performance monitor unit in ARM DynamIQ Shared
|
|
|
|
|
Unit (DSU). The DSU integrates one or more cores with an L3 memory
|
|
|
|
|
system, control logic. The PMU allows counting various events related
|
|
|
|
|
to DSU.
|
|
|
|
|
|
2019-05-01 18:43:29 +00:00
|
|
|
config FSL_IMX8_DDR_PMU
|
|
|
|
|
tristate "Freescale i.MX8 DDR perf monitor"
|
2021-10-01 18:48:46 +08:00
|
|
|
depends on ARCH_MXC || COMPILE_TEST
|
2019-05-01 18:43:29 +00:00
|
|
|
help
|
|
|
|
|
Provides support for the DDR performance monitor in i.MX8, which
|
|
|
|
|
can give information about memory throughput and other related
|
|
|
|
|
events.
|
|
|
|
|
|
2023-04-18 18:29:08 +08:00
|
|
|
config FSL_IMX9_DDR_PMU
|
|
|
|
|
tristate "Freescale i.MX9 DDR perf monitor"
|
|
|
|
|
depends on ARCH_MXC
|
|
|
|
|
help
|
|
|
|
|
Provides support for the DDR performance monitor in i.MX9, which
|
|
|
|
|
can give information about memory throughput and other related
|
|
|
|
|
events.
|
|
|
|
|
|
2025-09-09 12:02:50 +09:00
|
|
|
config FUJITSU_UNCORE_PMU
|
|
|
|
|
tristate "Fujitsu Uncore PMU"
|
|
|
|
|
depends on (ARM64 && ACPI) || (COMPILE_TEST && 64BIT)
|
|
|
|
|
help
|
|
|
|
|
Provides support for the Uncore performance monitor unit (PMU)
|
|
|
|
|
in Fujitsu processors.
|
|
|
|
|
Adds the Uncore PMU into the perf events subsystem for
|
|
|
|
|
monitoring Uncore events.
|
|
|
|
|
|
2017-02-07 13:14:04 -05:00
|
|
|
config QCOM_L2_PMU
|
|
|
|
|
bool "Qualcomm Technologies L2-cache PMU"
|
2017-06-13 13:45:51 +01:00
|
|
|
depends on ARCH_QCOM && ARM64 && ACPI
|
2020-07-03 10:49:41 +02:00
|
|
|
select QCOM_KRYO_L2_ACCESSORS
|
2017-02-07 13:14:04 -05:00
|
|
|
help
|
|
|
|
|
Provides support for the L2 cache performance monitor unit (PMU)
|
|
|
|
|
in Qualcomm Technologies processors.
|
|
|
|
|
Adds the L2 cache PMU into the perf events subsystem for
|
|
|
|
|
monitoring L2 cache events.
|
|
|
|
|
|
2017-03-31 14:13:43 -04:00
|
|
|
config QCOM_L3_PMU
|
|
|
|
|
bool "Qualcomm Technologies L3-cache PMU"
|
2017-06-13 13:45:51 +01:00
|
|
|
depends on ARCH_QCOM && ARM64 && ACPI
|
2017-03-31 14:13:43 -04:00
|
|
|
select QCOM_IRQ_COMBINER
|
|
|
|
|
help
|
|
|
|
|
Provides support for the L3 cache performance monitor unit (PMU)
|
|
|
|
|
in Qualcomm Technologies processors.
|
|
|
|
|
Adds the L3 cache PMU into the perf events subsystem for
|
|
|
|
|
monitoring L3 cache events.
|
|
|
|
|
|
2018-12-06 11:51:31 +00:00
|
|
|
config THUNDERX2_PMU
|
|
|
|
|
tristate "Cavium ThunderX2 SoC PMU UNCORE"
|
2021-10-01 18:48:46 +08:00
|
|
|
depends on ARCH_THUNDER2 || COMPILE_TEST
|
|
|
|
|
depends on NUMA && ACPI
|
2025-04-17 09:46:50 +02:00
|
|
|
default m if ARCH_THUNDER2
|
2018-12-06 11:51:31 +00:00
|
|
|
help
|
|
|
|
|
Provides support for ThunderX2 UNCORE events.
|
|
|
|
|
The SoC has PMU support in its L3 cache controller (L3C) and
|
|
|
|
|
in the DDR4 Memory Controller (DMC).
|
|
|
|
|
|
2016-07-15 10:38:04 -07:00
|
|
|
config XGENE_PMU
|
2021-10-01 18:48:46 +08:00
|
|
|
depends on ARCH_XGENE || (COMPILE_TEST && 64BIT)
|
2016-07-15 10:38:04 -07:00
|
|
|
bool "APM X-Gene SoC PMU"
|
|
|
|
|
default n
|
|
|
|
|
help
|
|
|
|
|
Say y if you want to use APM X-Gene SoC performance monitors.
|
|
|
|
|
|
2016-09-22 11:36:32 +01:00
|
|
|
config ARM_SPE_PMU
|
|
|
|
|
tristate "Enable support for the ARMv8.2 Statistical Profiling Extension"
|
2018-05-22 23:54:04 +08:00
|
|
|
depends on ARM64
|
2016-09-22 11:36:32 +01:00
|
|
|
help
|
|
|
|
|
Enable perf support for the ARMv8.2 Statistical Profiling
|
|
|
|
|
Extension, which provides periodic sampling of operations in
|
|
|
|
|
the CPU pipeline and reports this via the perf AUX interface.
|
|
|
|
|
|
2025-06-11 13:01:14 -05:00
|
|
|
config ARM64_BRBE
|
|
|
|
|
bool "Enable support for branch stack sampling using FEAT_BRBE"
|
|
|
|
|
depends on ARM_PMUV3 && ARM64
|
|
|
|
|
default y
|
|
|
|
|
help
|
|
|
|
|
Enable perf support for Branch Record Buffer Extension (BRBE) which
|
|
|
|
|
records all branches taken in an execution path. This supports some
|
|
|
|
|
branch types and privilege based filtering. It captures additional
|
|
|
|
|
relevant information such as cycle count, misprediction and branch
|
|
|
|
|
type, branch privilege level etc.
|
|
|
|
|
|
2020-11-04 11:30:43 -08:00
|
|
|
config ARM_DMC620_PMU
|
|
|
|
|
tristate "Enable PMU support for the ARM DMC-620 memory controller"
|
|
|
|
|
depends on (ARM64 && ACPI) || COMPILE_TEST
|
|
|
|
|
help
|
|
|
|
|
Support for PMU events monitoring on the ARM DMC-620 memory
|
|
|
|
|
controller.
|
|
|
|
|
|
2021-11-15 10:05:05 +05:30
|
|
|
config MARVELL_CN10K_TAD_PMU
|
|
|
|
|
tristate "Marvell CN10K LLC-TAD PMU"
|
2022-01-12 15:00:47 +01:00
|
|
|
depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT)
|
2021-11-15 10:05:05 +05:30
|
|
|
help
|
|
|
|
|
Provides support for Last-Level cache Tag-and-data Units (LLC-TAD)
|
|
|
|
|
performance monitors on CN10K family silicons.
|
|
|
|
|
|
2022-02-08 18:56:04 +00:00
|
|
|
config APPLE_M1_CPU_PMU
|
|
|
|
|
bool "Apple M1 CPU PMU support"
|
|
|
|
|
depends on ARM_PMU && ARCH_APPLE
|
|
|
|
|
help
|
|
|
|
|
Provides support for the non-architectural CPU PMUs present on
|
|
|
|
|
the Apple M1 SoCs and derivatives.
|
|
|
|
|
|
2022-08-18 11:18:21 +08:00
|
|
|
config ALIBABA_UNCORE_DRW_PMU
|
|
|
|
|
tristate "Alibaba T-Head Yitian 710 DDR Sub-system Driveway PMU driver"
|
2022-09-27 15:37:16 +02:00
|
|
|
depends on (ARM64 && ACPI) || COMPILE_TEST
|
2022-08-18 11:18:21 +08:00
|
|
|
help
|
|
|
|
|
Support for Driveway PMU events monitoring on Yitian 710 DDR
|
|
|
|
|
Sub-system.
|
|
|
|
|
|
2020-05-07 10:58:25 +08:00
|
|
|
source "drivers/perf/hisilicon/Kconfig"
|
|
|
|
|
|
2022-02-11 10:23:46 +05:30
|
|
|
config MARVELL_CN10K_DDR_PMU
|
|
|
|
|
tristate "Enable MARVELL CN10K DRAM Subsystem(DSS) PMU Support"
|
2022-03-29 15:10:10 +02:00
|
|
|
depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT)
|
2022-02-11 10:23:46 +05:30
|
|
|
help
|
|
|
|
|
Enable perf support for Marvell DDR Performance monitoring
|
|
|
|
|
event on CN10K platform.
|
|
|
|
|
|
2023-12-08 10:56:51 +08:00
|
|
|
config DWC_PCIE_PMU
|
|
|
|
|
tristate "Synopsys DesignWare PCIe PMU"
|
|
|
|
|
depends on PCI
|
|
|
|
|
help
|
|
|
|
|
Enable perf support for Synopsys DesignWare PCIe PMU Performance
|
|
|
|
|
monitoring event on platform including the Alibaba Yitian 710.
|
|
|
|
|
|
2022-11-11 16:23:28 -06:00
|
|
|
source "drivers/perf/arm_cspmu/Kconfig"
|
|
|
|
|
|
2022-11-21 10:15:58 +08:00
|
|
|
source "drivers/perf/amlogic/Kconfig"
|
|
|
|
|
|
2023-05-26 10:58:23 +01:00
|
|
|
config CXL_PMU
|
|
|
|
|
tristate "CXL Performance Monitoring Unit"
|
|
|
|
|
depends on CXL_BUS
|
|
|
|
|
help
|
|
|
|
|
Support performance monitoring as defined in CXL rev 3.0
|
|
|
|
|
section 13.2: Performance Monitoring. CXL components may have
|
|
|
|
|
one or more CXL Performance Monitoring Units (CPMUs).
|
|
|
|
|
|
|
|
|
|
Say 'y/m' to enable a driver that will attach to performance
|
|
|
|
|
monitoring units and provide standard perf based interfaces.
|
|
|
|
|
|
|
|
|
|
If unsure say 'm'.
|
|
|
|
|
|
2024-10-28 11:23:09 +05:30
|
|
|
config MARVELL_PEM_PMU
|
|
|
|
|
tristate "MARVELL PEM PMU Support"
|
|
|
|
|
depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT)
|
|
|
|
|
help
|
|
|
|
|
Enable support for PCIe Interface performance monitoring
|
|
|
|
|
on Marvell platform.
|
|
|
|
|
|
2026-03-24 01:29:50 +00:00
|
|
|
config NVIDIA_TEGRA410_CMEM_LATENCY_PMU
|
|
|
|
|
tristate "NVIDIA Tegra410 CPU Memory Latency PMU"
|
|
|
|
|
depends on ARM64 && ACPI
|
|
|
|
|
help
|
|
|
|
|
Enable perf support for CPU memory latency counters monitoring on
|
|
|
|
|
NVIDIA Tegra410 SoC.
|
|
|
|
|
|
2026-03-24 01:29:51 +00:00
|
|
|
config NVIDIA_TEGRA410_C2C_PMU
|
|
|
|
|
tristate "NVIDIA Tegra410 C2C PMU"
|
|
|
|
|
depends on ARM64 && ACPI
|
|
|
|
|
help
|
|
|
|
|
Enable perf support for counters in NVIDIA C2C interface of NVIDIA
|
|
|
|
|
Tegra410 SoC.
|
|
|
|
|
|
2015-07-06 12:23:53 +01:00
|
|
|
endmenu
|