Peter Zijlstra
970892a903
perf_counter: Fix an ipi-deadlock
...
perf_pending_counter() is called from IRQ context and will call
perf_counter_disable(), however perf_counter_disable() uses
smp_call_function_single() which doesn't fancy being used with
IRQs disabled due to IPI deadlocks.
Fix this by making it use the local __perf_counter_disable()
call and teaching the counter_sched_out() code about pending
disables as well.
This should cover the case where a counter migrates before the
pending queue gets processed.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Corey J Ashford <cjashfor@us.ibm.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: stephane eranian <eranian@googlemail.com>
LKML-Reference: <20090813103655.244097721@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-08-13 12:58:05 +02:00
..
2009-06-18 13:03:58 -07:00
2009-08-08 17:06:03 +02:00
2009-07-12 12:22:34 -07:00
2009-07-19 17:15:54 +02:00
2009-08-09 12:53:48 +02:00
2009-06-30 18:56:00 -07:00
2009-06-08 12:31:53 -07:00
2009-06-24 00:02:38 -04:00
2009-06-24 00:00:52 -04:00
2009-06-24 00:02:38 -04:00
2009-06-24 00:02:38 -04:00
2009-06-24 00:00:52 -04:00
2009-06-24 00:02:38 -04:00
2009-04-02 19:04:54 -07:00
2009-07-29 19:10:35 -07:00
2009-04-30 19:24:24 +02:00
2009-06-22 21:18:12 -07:00
2009-06-16 19:47:31 -07:00
2009-05-11 08:15:36 +10:00
2009-03-31 23:00:27 -04:00
2009-07-08 09:31:56 -07:00
2009-04-05 11:04:19 -07:00
2009-08-07 10:39:56 -07:00
2009-07-18 14:19:53 +02:00
2009-07-11 12:40:44 +02:00
2009-06-16 19:47:48 -07:00
2009-07-10 17:32:55 +02:00
2009-06-09 22:37:52 +02:00
2009-07-29 19:10:34 -07:00
2009-06-16 19:47:47 -07:00
2009-05-15 07:56:24 -05:00
2009-07-08 09:31:56 -07:00
2009-07-30 16:44:06 -07:00
2009-07-27 12:15:46 -07:00
2009-05-12 19:59:52 +02:00
2009-08-07 11:58:38 +02:00
2009-05-07 11:17:34 +02:00
2009-06-28 11:05:04 -07:00
2009-07-27 12:15:45 -07:00
2009-06-11 17:55:42 +02:00
2009-04-02 19:04:53 -07:00
2009-06-18 13:03:56 -07:00
2009-07-24 15:30:45 -04:00
2009-06-12 21:46:58 +09:30
2009-08-13 12:58:05 +02:00
2009-06-18 13:03:55 -07:00
2009-07-09 17:07:02 +01:00
2009-08-08 18:30:25 +02:00
2009-08-04 10:16:41 +02:00
2009-06-16 11:02:28 -07:00
2009-07-29 19:10:36 -07:00
2009-07-06 13:57:04 -07:00
2009-04-03 12:23:02 +02:00
2009-04-15 13:55:14 -07:00
2009-05-05 20:28:05 +02:00
2009-03-30 22:05:16 +10:30
2009-04-14 11:33:43 +02:00
2009-06-24 15:02:48 +02:00
2009-04-03 12:23:03 +02:00
2009-04-05 11:04:19 -07:00
2009-06-18 13:03:48 -07:00
2009-06-30 18:56:00 -07:00
2009-04-06 11:14:02 +02:00
2009-08-06 05:50:21 +02:00
2009-05-09 10:08:19 +02:00
2009-08-02 14:23:29 +02:00
2009-03-30 22:05:17 +10:30
2009-06-17 18:29:42 +02:00
2009-08-02 14:10:12 +02:00
2009-03-30 17:17:35 -07:00
2009-05-15 15:32:45 +02:00
2009-07-10 10:43:29 +02:00
2009-03-24 23:16:51 +01:00
2009-07-18 14:19:52 +02:00
2009-03-02 15:41:30 -08:00
2009-08-01 11:18:56 -07:00
2009-06-16 19:47:49 -07:00
2009-08-07 10:39:55 -07:00
2009-07-22 17:01:17 +02:00
2009-04-02 19:05:11 -07:00
2009-03-30 22:05:17 +10:30
2009-06-16 19:47:48 -07:00
2009-06-28 11:05:28 -07:00
2009-07-18 23:11:43 +02:00
2009-03-18 19:55:00 +01:00
2009-03-09 08:13:35 -07:00
2009-02-27 16:26:21 -08:00
2009-06-15 21:30:23 -07:00
2009-04-02 19:05:01 -07:00
2009-06-18 13:03:55 -07:00
2009-04-14 17:17:16 +02:00
2009-06-02 01:10:40 +02:00