mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 20:18:24 +07:00
be80e758d0
Most of the power processor generation performance monitoring unit (PMU) driver code is bundled in the kernel and one of those is enabled/registered based on the oprofile_cpu_type check at the boot. But things get little tricky incase of "compat" mode boot. IBM POWER System Server based processors has a compactibility mode feature, which simpily put is, Nth generation processor (lets say POWER8) will act and appear in a mode consistent with an earlier generation (N-1) processor (that is POWER7). And in this "compat" mode boot, kernel modify the "oprofile_cpu_type" to be Nth generation (POWER8). If Nth generation pmu driver is bundled (POWER8), it gets registered. Key dependency here is to have distro support for latest processor performance monitoring support. Patch here adds a generic "compat-mode" performance monitoring driver to be register in absence of powernv platform specific pmu driver. Driver supports only "cycles" and "instruction" events. "0x0001e" used as event code for "cycles" and "0x00002" used as event code for "instruction" events. New file called "generic-compat-pmu.c" is created to contain the driver specific code. And base raw event code format modeled on PPMU_ARCH_207S. Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com> [mpe: Use SPDX tag for license] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
22 lines
703 B
Makefile
22 lines
703 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
obj-$(CONFIG_PERF_EVENTS) += callchain.o perf_regs.o
|
|
|
|
obj-$(CONFIG_PPC_PERF_CTRS) += core-book3s.o bhrb.o
|
|
obj64-$(CONFIG_PPC_PERF_CTRS) += ppc970-pmu.o power5-pmu.o \
|
|
power5+-pmu.o power6-pmu.o power7-pmu.o \
|
|
isa207-common.o power8-pmu.o power9-pmu.o \
|
|
generic-compat-pmu.o
|
|
obj32-$(CONFIG_PPC_PERF_CTRS) += mpc7450-pmu.o
|
|
|
|
obj-$(CONFIG_PPC_POWERNV) += imc-pmu.o
|
|
obj-$(CONFIG_FSL_EMB_PERF_EVENT) += core-fsl-emb.o
|
|
obj-$(CONFIG_FSL_EMB_PERF_EVENT_E500) += e500-pmu.o e6500-pmu.o
|
|
|
|
obj-$(CONFIG_HV_PERF_CTRS) += hv-24x7.o hv-gpci.o hv-common.o
|
|
|
|
obj-$(CONFIG_PPC_8xx) += 8xx-pmu.o
|
|
|
|
obj-$(CONFIG_PPC64) += $(obj64-y)
|
|
obj-$(CONFIG_PPC32) += $(obj32-y)
|