Skip to content

Commit 2fc18d0

Browse files
committed
Merge tag 'perf_urgent_for_v6.16_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fix from Borislav Petkov: - Make sure an AUX perf event is really disabled when it overruns * tag 'perf_urgent_for_v6.16_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/aux: Fix pending disable flow when the AUX ring buffer overruns
2 parents 753a0f6 + 1476b21 commit 2fc18d0

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

kernel/events/core.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7251,15 +7251,15 @@ static void __perf_pending_disable(struct perf_event *event)
72517251
* CPU-A CPU-B
72527252
*
72537253
* perf_event_disable_inatomic()
7254-
* @pending_disable = CPU-A;
7254+
* @pending_disable = 1;
72557255
* irq_work_queue();
72567256
*
72577257
* sched-out
7258-
* @pending_disable = -1;
7258+
* @pending_disable = 0;
72597259
*
72607260
* sched-in
72617261
* perf_event_disable_inatomic()
7262-
* @pending_disable = CPU-B;
7262+
* @pending_disable = 1;
72637263
* irq_work_queue(); // FAILS
72647264
*
72657265
* irq_work_run()

kernel/events/ring_buffer.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ void *perf_aux_output_begin(struct perf_output_handle *handle,
441441
* store that will be enabled on successful return
442442
*/
443443
if (!handle->size) { /* A, matches D */
444-
event->pending_disable = smp_processor_id();
444+
perf_event_disable_inatomic(handle->event);
445445
perf_output_wakeup(handle);
446446
WRITE_ONCE(rb->aux_nest, 0);
447447
goto err_put;
@@ -526,7 +526,7 @@ void perf_aux_output_end(struct perf_output_handle *handle, unsigned long size)
526526

527527
if (wakeup) {
528528
if (handle->aux_flags & PERF_AUX_FLAG_TRUNCATED)
529-
handle->event->pending_disable = smp_processor_id();
529+
perf_event_disable_inatomic(handle->event);
530530
perf_output_wakeup(handle);
531531
}
532532

0 commit comments

Comments
 (0)