[v2,3/4] perf: Fix event multiplexing for exclusive groups
diff mbox series

Message ID 20201029162902.038667689@infradead.org
State Accepted
Commit 2714c3962f304d031d5016c963c4b459337b0749
Headers show
Series
  • perf: Fix perf_event_attr::exclusive rotation
Related show

Commit Message

Peter Zijlstra Oct. 29, 2020, 4:27 p.m. UTC
Commit 9e6302056f80 ("perf: Use hrtimers for event multiplexing")
placed the hrtimer (re)start call in the wrong place.  Instead of
capturing all scheduling failures, it only considered the PMU failure.

The result is that groups using perf_event_attr::exclusive are no
longer rotated.

Fixes: 9e6302056f80 ("perf: Use hrtimers for event multiplexing")
Reported-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 kernel/events/core.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch
diff mbox series

--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -2612,7 +2612,6 @@  group_sched_in(struct perf_event *group_
 
 error:
 	pmu->cancel_txn(pmu);
-	perf_mux_hrtimer_restart(cpuctx);
 	return -EAGAIN;
 }
 
@@ -3672,6 +3671,7 @@  static int merge_sched_in(struct perf_ev
 
 		*can_add_hw = 0;
 		ctx->rotate_necessary = 1;
+		perf_mux_hrtimer_restart(cpuctx);
 	}
 
 	return 0;