]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf/x86/intel: Remove driver-specific throttle support
authorKan Liang <kan.liang@linux.intel.com>
Tue, 20 May 2025 18:16:31 +0000 (11:16 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 21 May 2025 11:57:43 +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>
Link: https://lore.kernel.org/r/20250520181644.2673067-4-kan.liang@linux.intel.com
arch/x86/events/core.c
arch/x86/events/intel/core.c
arch/x86/events/intel/ds.c
arch/x86/events/intel/knc.c
arch/x86/events/intel/p4.c

index 92c3fb61f2d69a9206a970e34445515e1f1a3bd3..4c49eef8052ec6d35f73abfc948da5dfac4cb0af 100644 (file)
@@ -1728,8 +1728,7 @@ int x86_pmu_handle_irq(struct pt_regs *regs)
 
                perf_sample_save_brstack(&data, event, &cpuc->lbr_stack, NULL);
 
-               if (perf_event_overflow(event, &data, regs))
-                       x86_pmu_stop(event, 0);
+               perf_event_overflow(event, &data, regs);
        }
 
        if (handled)
index cd632920731139ca2c0df9d6cce7259f6c3f6e43..3a319cf6d3649a6b33e3bebf1fb176f2c88055fb 100644 (file)
@@ -3138,8 +3138,7 @@ static void x86_pmu_handle_guest_pebs(struct pt_regs *regs,
                        continue;
 
                perf_sample_data_init(data, 0, event->hw.last_period);
-               if (perf_event_overflow(event, data, regs))
-                       x86_pmu_stop(event, 0);
+               perf_event_overflow(event, data, regs);
 
                /* Inject one fake event is enough. */
                break;
@@ -3282,8 +3281,7 @@ static int handle_pmi_common(struct pt_regs *regs, u64 status)
                if (has_branch_stack(event))
                        intel_pmu_lbr_save_brstack(&data, cpuc, event);
 
-               if (perf_event_overflow(event, &data, regs))
-                       x86_pmu_stop(event, 0);
+               perf_event_overflow(event, &data, regs);
        }
 
        return handled;
index 319d0d4ce30c9d078998dcda06da08bd0f31a46d..fb02e434d0723df138551f00fc64819d9d20b97e 100644 (file)
@@ -2359,8 +2359,7 @@ __intel_pmu_pebs_last_event(struct perf_event *event,
                 * All but the last records are processed.
                 * The last one is left to be able to call the overflow handler.
                 */
-               if (perf_event_overflow(event, data, regs))
-                       x86_pmu_stop(event, 0);
+               perf_event_overflow(event, data, regs);
        }
 
        if (hwc->flags & PERF_X86_EVENT_AUTO_RELOAD) {
@@ -2588,8 +2587,8 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs, struct perf_sample_d
                if (error[bit]) {
                        perf_log_lost_samples(event, error[bit]);
 
-                       if (iregs && perf_event_account_interrupt(event))
-                               x86_pmu_stop(event, 0);
+                       if (iregs)
+                               perf_event_account_interrupt(event);
                }
 
                if (counts[bit]) {
index 3e8ec049b46d15d4c100420090a07acbae054984..384589168c1a367b22b6c04075d2dc6ed1a3d43e 100644 (file)
@@ -254,8 +254,7 @@ again:
 
                perf_sample_data_init(&data, 0, last_period);
 
-               if (perf_event_overflow(event, &data, regs))
-                       x86_pmu_stop(event, 0);
+               perf_event_overflow(event, &data, regs);
        }
 
        /*
index c85a9fc4435545c5cba1fe5d272d36e36f61685f..126d5ae264cb9d828f8ab652a0d7dc68e266139b 100644 (file)
@@ -1072,8 +1072,7 @@ static int p4_pmu_handle_irq(struct pt_regs *regs)
                        continue;
 
 
-               if (perf_event_overflow(event, &data, regs))
-                       x86_pmu_stop(event, 0);
+               perf_event_overflow(event, &data, regs);
        }
 
        if (handled)