All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf: Explain perf_sched_mutex
@ 2017-08-29 14:01 Alexander Shishkin
  2017-08-29 14:04 ` Alexander Shishkin
  2017-09-29 20:07 ` [tip:perf/core] perf/core: " tip-bot for Alexander Shishkin
  0 siblings, 2 replies; 3+ messages in thread
From: Alexander Shishkin @ 2017-08-29 14:01 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: Ingo Molnar, linux-kernel, Alexander Shishkin

To clarify why atomic_inc_return(&perf_sched_events) is not sufficient and
a mutex is needed to order static branch enabling vs the atomic counter
increment, this adds a comment with an short explanation.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
---
 kernel/events/core.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index efe09b8c38..2c8719b635 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9569,6 +9569,11 @@ static void account_event(struct perf_event *event)
 		inc = true;
 
 	if (inc) {
+		/*
+		 * We need the mutex here because static_branch_enable()
+		 * must complete *before* the perf_sched_count increment
+		 * becomes visible.
+		 */
 		if (atomic_inc_not_zero(&perf_sched_count))
 			goto enabled;
 
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-09-29 20:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-29 14:01 [PATCH] perf: Explain perf_sched_mutex Alexander Shishkin
2017-08-29 14:04 ` Alexander Shishkin
2017-09-29 20:07 ` [tip:perf/core] perf/core: " tip-bot for Alexander Shishkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.