Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Performance Monitor Drivers
0004 #
0005 
0006 menu "Performance monitor support"
0007         depends on PERF_EVENTS
0008 
0009 config ARM_CCI_PMU
0010         tristate "ARM CCI PMU driver"
0011         depends on (ARM && CPU_V7) || ARM64
0012         select ARM_CCI
0013         help
0014           Support for PMU events monitoring on the ARM CCI (Cache Coherent
0015           Interconnect) family of products.
0016 
0017           If compiled as a module, it will be called arm-cci.
0018 
0019 config ARM_CCI400_PMU
0020         bool "support CCI-400"
0021         default y
0022         depends on ARM_CCI_PMU
0023         select ARM_CCI400_COMMON
0024         help
0025           CCI-400 provides 4 independent event counters counting events related
0026           to the connected slave/master interfaces, plus a cycle counter.
0027 
0028 config ARM_CCI5xx_PMU
0029         bool "support CCI-500/CCI-550"
0030         default y
0031         depends on ARM_CCI_PMU
0032         help
0033           CCI-500/CCI-550 both provide 8 independent event counters, which can
0034           count events pertaining to the slave/master interfaces as well as the
0035           internal events to the CCI.
0036 
0037 config ARM_CCN
0038         tristate "ARM CCN driver support"
0039         depends on ARM || ARM64 || COMPILE_TEST
0040         help
0041           PMU (perf) driver supporting the ARM CCN (Cache Coherent Network)
0042           interconnect.
0043 
0044 config ARM_CMN
0045         tristate "Arm CMN-600 PMU support"
0046         depends on ARM64 || COMPILE_TEST
0047         help
0048           Support for PMU events monitoring on the Arm CMN-600 Coherent Mesh
0049           Network interconnect.
0050 
0051 config ARM_PMU
0052         depends on ARM || ARM64
0053         bool "ARM PMU framework"
0054         default y
0055         help
0056           Say y if you want to use CPU performance monitors on ARM-based
0057           systems.
0058 
0059 config RISCV_PMU
0060         depends on RISCV
0061         bool "RISC-V PMU framework"
0062         default y
0063         help
0064           Say y if you want to use CPU performance monitors on RISCV-based
0065           systems. This provides the core PMU framework that abstracts common
0066           PMU functionalities in a core library so that different PMU drivers
0067           can reuse it.
0068 
0069 config RISCV_PMU_LEGACY
0070         depends on RISCV_PMU
0071         bool "RISC-V legacy PMU implementation"
0072         default y
0073         help
0074           Say y if you want to use the legacy CPU performance monitor
0075           implementation on RISC-V based systems. This only allows counting
0076           of cycle/instruction counter and doesn't support counter overflow,
0077           or programmable counters. It will be removed in future.
0078 
0079 config RISCV_PMU_SBI
0080         depends on RISCV_PMU && RISCV_SBI
0081         bool "RISC-V PMU based on SBI PMU extension"
0082         default y
0083         help
0084           Say y if you want to use the CPU performance monitor
0085           using SBI PMU extension on RISC-V based systems. This option provides
0086           full perf feature support i.e. counter overflow, privilege mode
0087           filtering, counter configuration.
0088 
0089 config ARM_PMU_ACPI
0090         depends on ARM_PMU && ACPI
0091         def_bool y
0092 
0093 config ARM_SMMU_V3_PMU
0094          tristate "ARM SMMUv3 Performance Monitors Extension"
0095          depends on (ARM64 && ACPI) || (COMPILE_TEST && 64BIT)
0096          depends on GENERIC_MSI_IRQ_DOMAIN
0097            help
0098            Provides support for the ARM SMMUv3 Performance Monitor Counter
0099            Groups (PMCG), which provide monitoring of transactions passing
0100            through the SMMU and allow the resulting information to be filtered
0101            based on the Stream ID of the corresponding master.
0102 
0103 config ARM_DSU_PMU
0104         tristate "ARM DynamIQ Shared Unit (DSU) PMU"
0105         depends on ARM64
0106           help
0107           Provides support for performance monitor unit in ARM DynamIQ Shared
0108           Unit (DSU). The DSU integrates one or more cores with an L3 memory
0109           system, control logic. The PMU allows counting various events related
0110           to DSU.
0111 
0112 config FSL_IMX8_DDR_PMU
0113         tristate "Freescale i.MX8 DDR perf monitor"
0114         depends on ARCH_MXC || COMPILE_TEST
0115           help
0116           Provides support for the DDR performance monitor in i.MX8, which
0117           can give information about memory throughput and other related
0118           events.
0119 
0120 config QCOM_L2_PMU
0121         bool "Qualcomm Technologies L2-cache PMU"
0122         depends on ARCH_QCOM && ARM64 && ACPI
0123         select QCOM_KRYO_L2_ACCESSORS
0124           help
0125           Provides support for the L2 cache performance monitor unit (PMU)
0126           in Qualcomm Technologies processors.
0127           Adds the L2 cache PMU into the perf events subsystem for
0128           monitoring L2 cache events.
0129 
0130 config QCOM_L3_PMU
0131         bool "Qualcomm Technologies L3-cache PMU"
0132         depends on ARCH_QCOM && ARM64 && ACPI
0133         select QCOM_IRQ_COMBINER
0134         help
0135            Provides support for the L3 cache performance monitor unit (PMU)
0136            in Qualcomm Technologies processors.
0137            Adds the L3 cache PMU into the perf events subsystem for
0138            monitoring L3 cache events.
0139 
0140 config THUNDERX2_PMU
0141         tristate "Cavium ThunderX2 SoC PMU UNCORE"
0142         depends on ARCH_THUNDER2 || COMPILE_TEST
0143         depends on NUMA && ACPI
0144         default m
0145         help
0146            Provides support for ThunderX2 UNCORE events.
0147            The SoC has PMU support in its L3 cache controller (L3C) and
0148            in the DDR4 Memory Controller (DMC).
0149 
0150 config XGENE_PMU
0151         depends on ARCH_XGENE || (COMPILE_TEST && 64BIT)
0152         bool "APM X-Gene SoC PMU"
0153         default n
0154         help
0155           Say y if you want to use APM X-Gene SoC performance monitors.
0156 
0157 config ARM_SPE_PMU
0158         tristate "Enable support for the ARMv8.2 Statistical Profiling Extension"
0159         depends on ARM64
0160         help
0161           Enable perf support for the ARMv8.2 Statistical Profiling
0162           Extension, which provides periodic sampling of operations in
0163           the CPU pipeline and reports this via the perf AUX interface.
0164 
0165 config ARM_DMC620_PMU
0166         tristate "Enable PMU support for the ARM DMC-620 memory controller"
0167         depends on (ARM64 && ACPI) || COMPILE_TEST
0168         help
0169           Support for PMU events monitoring on the ARM DMC-620 memory
0170           controller.
0171 
0172 config MARVELL_CN10K_TAD_PMU
0173         tristate "Marvell CN10K LLC-TAD PMU"
0174         depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT)
0175         help
0176           Provides support for Last-Level cache Tag-and-data Units (LLC-TAD)
0177           performance monitors on CN10K family silicons.
0178 
0179 config APPLE_M1_CPU_PMU
0180         bool "Apple M1 CPU PMU support"
0181         depends on ARM_PMU && ARCH_APPLE
0182         help
0183           Provides support for the non-architectural CPU PMUs present on
0184           the Apple M1 SoCs and derivatives.
0185 
0186 source "drivers/perf/hisilicon/Kconfig"
0187 
0188 config MARVELL_CN10K_DDR_PMU
0189         tristate "Enable MARVELL CN10K DRAM Subsystem(DSS) PMU Support"
0190         depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT)
0191         help
0192           Enable perf support for Marvell DDR Performance monitoring
0193           event on CN10K platform.
0194 
0195 endmenu