Commit 16b9569
perf: Don't disable preemption in perf_pending_task().
perf_pending_task() is invoked in task context and disables preemption
because perf_swevent_get_recursion_context() used to access per-CPU
variables. The other reason is to create a RCU read section while
accessing the perf_event.
The recursion counter is no longer a per-CPU accounter so disabling
preemption is no longer required. The RCU section is needed and must be
created explicit.
Replace the preemption-disable section with a explicit RCU-read section.
Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Tested-by: Marco Elver <[email protected]>
Link: https://lore.kernel.org/r/[email protected]1 parent 0d40a6d commit 16b9569
1 file changed
+5
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5208 | 5208 | | |
5209 | 5209 | | |
5210 | 5210 | | |
5211 | | - | |
5212 | | - | |
5213 | | - | |
5214 | | - | |
| 5211 | + | |
| 5212 | + | |
| 5213 | + | |
5215 | 5214 | | |
5216 | 5215 | | |
5217 | 5216 | | |
| |||
6831 | 6830 | | |
6832 | 6831 | | |
6833 | 6832 | | |
6834 | | - | |
| 6833 | + | |
6835 | 6834 | | |
6836 | 6835 | | |
6837 | 6836 | | |
| |||
6844 | 6843 | | |
6845 | 6844 | | |
6846 | 6845 | | |
| 6846 | + | |
6847 | 6847 | | |
6848 | 6848 | | |
6849 | 6849 | | |
6850 | | - | |
6851 | 6850 | | |
6852 | 6851 | | |
6853 | 6852 | | |
| |||
0 commit comments