Peter Zijlstra
fe4b04fa31
perf: Cure task_oncpu_function_call() races
...
Oleg reported that on architectures with
__ARCH_WANT_INTERRUPTS_ON_CTXSW the IPI from
task_oncpu_function_call() can land before perf_event_task_sched_in()
and cause interesting situations for eg. perf_install_in_context().
This patch reworks the task_oncpu_function_call() interface to give a
more usable primitive as well as rework all its users to hopefully be
more obvious as well as remove the races.
While looking at the code I also found a number of races against
perf_event_task_sched_out() which can flip contexts between tasks so
plug those too.
Reported-and-reviewed-by: Oleg Nesterov <oleg@redhat.com >
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl >
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2011-02-03 12:14:43 +01:00
..
2011-01-17 10:54:41 -08:00
2011-01-12 15:15:14 -08:00
2011-01-13 08:03:25 -08:00
2011-01-26 16:31:44 +10:00
2011-01-14 12:38:18 +01:00
2011-01-12 14:49:17 -08:00
2011-01-14 15:57:47 +09:00
2011-01-13 08:03:19 -08:00
2011-01-13 21:04:07 -05:00
2011-01-14 18:11:59 +03:00
2011-01-25 15:26:51 -05:00
2011-01-13 08:03:08 -08:00
2011-01-24 08:14:07 +09:00
2011-01-20 18:30:17 -08:00
2011-01-20 18:30:17 -08:00
2011-01-15 20:07:45 -05:00
2011-01-13 08:03:12 -08:00
2011-01-13 10:45:01 -08:00
2011-01-13 08:03:17 -08:00
2011-01-13 17:32:46 -08:00
2011-01-26 10:50:06 +10:00
2011-01-13 08:03:22 -08:00
2011-01-13 08:03:13 -08:00
2011-01-15 20:07:47 -05:00
2011-01-13 20:00:02 +00:00
2011-01-13 19:59:58 +00:00
2011-01-13 19:59:52 +00:00
2011-01-17 10:54:41 -08:00
2011-01-13 21:49:56 -08:00
2011-01-12 20:16:43 -05:00
2011-01-15 20:07:33 -05:00
2011-01-17 03:26:26 -05:00
2011-01-17 08:21:42 -05:00
2011-01-13 14:47:54 +01:00
2011-01-24 14:45:11 +10:30
2011-01-14 08:06:39 -08:00
2011-01-13 09:58:38 -08:00
2011-01-13 17:32:48 -08:00
2011-01-13 15:46:45 -05:00
2011-01-13 09:58:14 -08:00
2011-01-21 11:55:31 +01:00
2011-01-13 10:25:58 -08:00
2011-01-13 17:32:31 -08:00
2011-02-01 08:23:22 +10:00
2011-01-13 17:32:47 -08:00
2011-01-24 14:45:11 +10:30
2011-01-13 08:03:07 -08:00
2011-01-13 08:03:06 -08:00
2011-01-13 08:03:05 -08:00
2011-01-14 13:12:45 +00:00
2011-01-21 13:38:57 -08:00
2011-01-17 10:44:31 -06:00
2011-01-20 17:02:06 -08:00
2011-01-15 13:28:17 +02:00
2011-01-13 17:32:34 -08:00
2011-01-13 17:32:46 -08:00
2011-01-13 17:32:41 -08:00
2011-01-21 08:40:30 -08:00
2011-01-13 17:32:46 -08:00
2011-01-13 17:32:43 -08:00
2011-01-24 14:32:52 +10:30
2011-01-24 14:32:52 +10:30
2011-01-16 13:47:07 -05:00
2011-01-15 20:07:33 -05:00
2011-01-12 20:03:43 -05:00
2011-01-12 20:03:43 -05:00
2011-01-13 21:44:34 -08:00
2011-01-14 13:17:26 -08:00
2011-01-15 20:07:34 -05:00
2011-01-25 15:24:47 -05:00
2011-01-15 22:01:58 -07:00
2011-01-14 07:52:02 -08:00
2011-01-13 17:32:43 -08:00
2011-01-13 17:32:36 -08:00
2011-01-16 13:47:07 -05:00
2011-01-14 09:29:05 -08:00
2011-01-16 11:56:26 -08:00
2011-01-14 15:23:25 -08:00
2011-01-25 15:24:47 -05:00
2011-01-13 08:03:21 -08:00
2011-01-13 08:03:21 -08:00
2011-01-13 08:03:10 -08:00
2011-01-13 17:32:48 -08:00
2011-01-14 02:36:43 +00:00
2011-01-13 08:03:17 -08:00
2011-01-13 08:03:18 -08:00
2011-01-13 08:03:18 -08:00
2011-01-13 17:32:42 -08:00
2011-01-13 08:03:23 -08:00
2011-01-21 17:38:19 +01:00
2011-02-03 12:14:43 +01:00
2011-01-13 08:03:19 -08:00
2011-01-13 15:06:28 +09:00
2011-01-13 10:25:58 -08:00
2011-01-13 20:15:35 -08:00
2011-01-13 17:32:42 -08:00
2011-01-24 09:33:36 -08:00
2011-01-13 08:03:21 -08:00
2011-01-13 08:03:20 -08:00
2011-01-13 08:03:08 -08:00
2011-01-13 08:03:20 -08:00
2011-01-13 08:03:18 -08:00
2011-01-24 14:45:11 +10:30
2011-01-13 17:32:34 -08:00
2011-01-13 17:32:31 -08:00
2011-01-13 08:03:24 -08:00