linux/drivers/perf
Atish Patra a3f24e83d1
drivers/perf: riscv: Do not update the event data if uptodate
In case of an counter overflow, the event data may get corrupted
if called from an external overflow handler. This happens because
we can't update the counter without starting it when SBI PMU
extension is in use. However, the prev_count has been already
updated at the first pass while the counter value is still the
old one.

The solution is simple where we don't need to update it again
if it is already updated which can be detected using hwc state.
The event state in the overflow handler is updated in the following
patch. Thus, this fix can't be backported to kernel version where
overflow support was added.

Fixes: a8625217a0 ("drivers/perf: riscv: Implement SBI PMU snapshot function")

Closes:https://lore.kernel.org/all/CC51D53B-846C-4D81-86FC-FBF969D0A0D6@pku.edu.cn/

Reported-by: garthlei@pku.edu.cn
Signed-off-by: Atish Patra <atishp@rivosinc.com>
Link: https://lore.kernel.org/r/20240628-misc_perf_fixes-v4-1-e01cfddcf035@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2024-07-03 12:56:15 -07:00
..
amlogic perf/amlogic: Assign parents for event_source devices 2024-04-19 15:59:29 +01:00
arm_cspmu Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
hisilicon Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
alibaba_uncore_drw_pmu.c Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
apple_m1_cpu_pmu.c arm: pmu: Move error message and -EOPNOTSUPP to individual PMUs 2023-12-12 09:46:22 +00:00
arm_dmc620_pmu.c perf/arm-dmc620: Fix lockdep assert in ->event_init() 2024-05-17 16:48:05 +01:00
arm_dsu_pmu.c Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
arm_pmu_acpi.c arm_pmu: acpi: Add a representative platform device for TRBE 2023-08-18 18:07:10 +01:00
arm_pmu_platform.c perf/arm_pmu: Assign parents for event_source devices 2024-04-19 15:59:30 +01:00
arm_pmu.c arm: pmu: Move error message and -EOPNOTSUPP to individual PMUs 2023-12-12 09:46:22 +00:00
arm_pmuv3.c arm64: perf: Add support for event counting threshold 2023-12-12 09:46:22 +00:00
arm_smmuv3_pmu.c perf/arm-smmuv3: Assign parents for event_source device 2024-04-19 15:59:31 +01:00
arm_spe_pmu.c perf/arm-spe: Assign parents for event_source device 2024-04-19 15:59:31 +01:00
arm-cci.c Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
arm-ccn.c Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
arm-cmn.c perf/arm-cmn: Set PMU device parent 2024-04-10 16:48:17 +01:00
cxl_pmu.c Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
dwc_pcie_pmu.c perf/dwc_pcie: Avoid placing cpumask on the stack 2024-04-09 16:47:15 +01:00
fsl_imx8_ddr_perf.c perf/imx_ddr: Assign parents for event_source devices 2024-04-19 15:59:30 +01:00
fsl_imx9_ddr_perf.c perf: fsl_imx9_ddr: Convert to platform remove callback returning void 2024-02-09 15:59:30 +00:00
Kconfig RISC-V Patches for the 6.9 Merge Window 2024-03-22 10:41:13 -07:00
Makefile perf: starfive: Add StarLink PMU support 2024-03-04 14:19:48 +00:00
marvell_cn10k_ddr_pmu.c perf: marvell_cn10k_ddr: Convert to platform remove callback returning void 2024-02-09 15:59:30 +00:00
marvell_cn10k_tad_pmu.c perf: marvell_cn10k_tad: Convert to platform remove callback returning void 2024-02-09 15:59:30 +00:00
qcom_l2_pmu.c perf/qcom: Assign parents for event_source devices 2024-04-19 15:59:30 +01:00
qcom_l3_pmu.c Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00
riscv_pmu_legacy.c perf/riscv: Assign parents for event_source devices 2024-04-19 15:59:29 +01:00
riscv_pmu_sbi.c ARM: 2024-05-15 14:46:43 -07:00
riscv_pmu.c drivers/perf: riscv: Do not update the event data if uptodate 2024-07-03 12:56:15 -07:00
starfive_starlink_pmu.c perf: starfive: Add StarLink PMU support 2024-03-04 14:19:48 +00:00
thunderx2_pmu.c perf/thunderx2: Assign parents for event_source devices 2024-04-19 15:59:29 +01:00
xgene_pmu.c Driver core changes for 6.10-rc1 2024-05-22 12:13:40 -07:00