1
0
Files
linux/kernel
Peter Zijlstra c5ed514559 perf: Fix contexted inheritance
Linus reported that the RCU lockdep annotation bits triggered for this
rcu_dereference() because we're not holding rcu_read_lock().

Going over the code I cannot convince myself its correct:

 - holding a ref on the parent_ctx, doesn't avoid it being uncloned
   concurrently (as the comment says), so we can race with a free.

 - holding parent_ctx->mutex doesn't avoid the above free from taking
   place either, it would at best avoid parent_ctx from being freed.

I.e. the warning is correct. To fix the bug, serialize against the
unclone_ctx() call by extending the reach of the parent_ctx->lock.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2011-01-18 15:10:35 +01:00
..
2010-12-08 20:15:29 +01:00
2011-01-14 18:06:35 -05:00
2010-08-09 16:48:42 -04:00
2010-07-14 11:29:46 +02:00
2010-10-30 01:42:19 -04:00
2010-10-30 01:42:19 -04:00
2010-10-30 08:45:43 -04:00
2010-10-29 04:17:06 -04:00
2010-10-29 04:17:06 -04:00
2011-01-05 14:14:46 +01:00
2010-11-10 15:01:34 +01:00
2010-12-16 11:36:43 +01:00
2010-11-18 13:18:47 +01:00
2010-10-01 10:50:58 -07:00
2010-10-18 18:44:26 +02:00
2010-08-11 23:04:20 +09:30
2011-01-18 15:10:35 +01:00
2010-08-19 17:18:02 -07:00
2010-11-18 13:27:46 +01:00
2010-10-27 17:28:36 +01:00
2010-07-27 12:40:54 +02:00
2010-12-29 11:31:38 -08:00