perf: Optimize perf_pmu_migrate_context()
authorPeter Zijlstra <peterz@infradead.org>
Mon, 3 Apr 2023 09:08:58 +0000 (11:08 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 5 Apr 2023 07:58:46 +0000 (09:58 +0200)
commitb168098912926236bbeebaf7795eb7aab76d2b45
tree325d00ea96f4c6f67e86712514e4b277521475e2
parent197b6b60ae7bc51dd0814953c562833143b292aa
perf: Optimize perf_pmu_migrate_context()

Thomas reported that offlining CPUs spends a lot of time in
synchronize_rcu() as called from perf_pmu_migrate_context() even though
he's not actually using uncore events.

Turns out, the thing is unconditionally waiting for RCU, even if there's
no actual events to migrate.

Fixes: 0cda4c023132 ("perf: Introduce perf_pmu_migrate_context()")
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Link: https://lkml.kernel.org/r/20230403090858.GT4253@hirez.programming.kicks-ass.net
kernel/events/core.c