linux/drivers/perf
Marc Zyngier e840f42a49 KVM: arm64: Fix PMU probe ordering
Russell reported that since 5.13, KVM's probing of the PMU has
started to fail on his HW. As it turns out, there is an implicit
ordering dependency between the architectural PMU probing code and
and KVM's own probing. If, due to probe ordering reasons, KVM probes
before the PMU driver, it will fail to detect the PMU and prevent it
from being advertised to guests as well as the VMM.

Obviously, this is one probing too many, and we should be able to
deal with any ordering.

Add a callback from the PMU code into KVM to advertise the registration
of a host CPU PMU, allowing for any probing order.

Fixes: 5421db1be3 ("KVM: arm64: Divorce the perf code from oprofile helpers")
Reported-by: "Russell King (Oracle)" <linux@armlinux.org.uk>
Tested-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/YUYRKVflRtUytzy5@shell.armlinux.org.uk
Cc: stable@vger.kernel.org
2021-09-20 12:43:34 +01:00
..
hisilicon perf/hisi: Constify static attribute_group structs 2021-06-08 12:49:54 +01:00
Kconfig driver/perf: Remove ARM_SMMU_V3_PMU dependency on ARM_SMMU_V3 2021-02-01 12:39:40 +00:00
Makefile driver/perf: Add PMU driver for the ARM DMC-620 memory controller 2020-11-25 14:51:21 +00:00
arm-cci.c drivers/perf: arm-cci: Fix checkpatch spacing error 2021-05-25 18:59:23 +01:00
arm-ccn.c perf/arm-ccn: Use irq_set_affinity() 2021-05-24 11:01:59 +01:00
arm-cmn.c perf/arm-cmn: Fix invalid pointer when access dtc object sharing the same IRQ number 2021-06-17 19:45:02 +01:00
arm_dmc620_pmu.c perf/arm-dmc620: Use irq_set_affinity() 2021-05-24 11:01:59 +01:00
arm_dsu_pmu.c perf/arm-dsu: Use irq_set_affinity() 2021-05-24 11:02:00 +01:00
arm_pmu.c KVM: arm64: Fix PMU probe ordering 2021-09-20 12:43:34 +01:00
arm_pmu_acpi.c drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc pointer 2020-03-02 12:07:35 +00:00
arm_pmu_platform.c perf/arm_pmu_platform: Clean up with dev_printk 2021-03-30 11:41:50 +01:00
arm_smmuv3_pmu.c drivers/perf: Simplify EVENT ATTR macro in SMMU PMU driver 2021-06-11 11:18:40 +01:00
arm_spe_pmu.c perf: arm_spe: use DEVICE_ATTR_RO macro 2021-06-01 14:25:09 +01:00
fsl_imx8_ddr_perf.c drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe() 2021-06-17 19:45:24 +01:00
qcom_l2_pmu.c drivers/perf: Simplify EVENT ATTR macro in qcom_l2_pmu.c 2021-06-11 11:18:40 +01:00
qcom_l3_pmu.c drivers/perf: Simplify EVENT ATTR macro in qcom_l3_pmu.c 2021-06-11 11:18:40 +01:00
thunderx2_pmu.c drivers/perf: Remove redundant dev_err call in tx2_uncore_pmu_init_dev() 2021-05-25 18:57:19 +01:00
xgene_pmu.c drivers/perf: Simplify EVENT ATTR macro in xgene_pmu.c 2021-06-11 11:18:40 +01:00