]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf/arm: Remove driver-specific throttle support
authorKan Liang <kan.liang@linux.intel.com>
Tue, 20 May 2025 18:16:36 +0000 (11:16 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 21 May 2025 11:57:44 +0000 (13:57 +0200)
The throttle support has been added in the generic code. Remove
the driver-specific throttle support.

Besides the throttle, perf_event_overflow may return true because of
event_limit. It already does an inatomic event disable. The pmu->stop
is not required either.

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Leo Yan <leo.yan@arm.com>
Link: https://lore.kernel.org/r/20250520181644.2673067-9-kan.liang@linux.intel.com
drivers/perf/arm_pmuv3.c
drivers/perf/arm_v6_pmu.c
drivers/perf/arm_v7_pmu.c
drivers/perf/arm_xscale_pmu.c

index e506d59654e73041a8d4444af18a380d72036727..3db9f4ed17e8fd775b2e4569338e2ff493e93d1a 100644 (file)
@@ -887,8 +887,7 @@ static irqreturn_t armv8pmu_handle_irq(struct arm_pmu *cpu_pmu)
                 * an irq_work which will be taken care of in the handling of
                 * IPI_IRQ_WORK.
                 */
-               if (perf_event_overflow(event, &data, regs))
-                       cpu_pmu->disable(event);
+               perf_event_overflow(event, &data, regs);
        }
        armv8pmu_start(cpu_pmu);
 
index b09615bb2bb2516d8822d649b39637e995c72b23..7cb12c8e06c7ace36584f99455996b95326a54b2 100644 (file)
@@ -276,8 +276,7 @@ armv6pmu_handle_irq(struct arm_pmu *cpu_pmu)
                if (!armpmu_event_set_period(event))
                        continue;
 
-               if (perf_event_overflow(event, &data, regs))
-                       cpu_pmu->disable(event);
+               perf_event_overflow(event, &data, regs);
        }
 
        /*
index 17831e1920bd8d306aa1ea9cebe8b3f4659dfcee..a1e438101114a099dcfc1e5a44f2b3e3c4896cce 100644 (file)
@@ -930,8 +930,7 @@ static irqreturn_t armv7pmu_handle_irq(struct arm_pmu *cpu_pmu)
                if (!armpmu_event_set_period(event))
                        continue;
 
-               if (perf_event_overflow(event, &data, regs))
-                       cpu_pmu->disable(event);
+               perf_event_overflow(event, &data, regs);
        }
 
        /*
index 638fea9b1263d3a607c37ee81452c475bd10ea7d..c2ac41dd9e19c43a7721cb9452f5f93c328eb514 100644 (file)
@@ -186,8 +186,7 @@ xscale1pmu_handle_irq(struct arm_pmu *cpu_pmu)
                if (!armpmu_event_set_period(event))
                        continue;
 
-               if (perf_event_overflow(event, &data, regs))
-                       cpu_pmu->disable(event);
+               perf_event_overflow(event, &data, regs);
        }
 
        irq_work_run();
@@ -519,8 +518,7 @@ xscale2pmu_handle_irq(struct arm_pmu *cpu_pmu)
                if (!armpmu_event_set_period(event))
                        continue;
 
-               if (perf_event_overflow(event, &data, regs))
-                       cpu_pmu->disable(event);
+               perf_event_overflow(event, &data, regs);
        }
 
        irq_work_run();