On Fri, Jan 21, 2011 at 06:53:45PM +0100, Oleg Nesterov wrote: > On 01/21, Oleg Nesterov wrote: > > > > In theory, almost every user of task->child->perf_event_ctxp[] > > is wrong. find_get_context() can install the new context at any > > moment, we need read_barrier_depends(). > > And perhaps it makes sense to fix them all, although the problem > is only theoretical. > > > dbe08d82ce3967ccdf459f7951d02589cf967300 "perf: Fix > > find_get_context() vs perf_event_exit_task() race" added > > rcu_dereference() into perf_event_exit_task_context() to make > > the precedent, but this makes __rcu_dereference_check() unhappy. > > Use rcu_dereference_raw() to shut up the warning. > > But rcu_dereference_raw() looks a bit confusing, and it is not > very convenient to use read_barrier_depends() directly. > > Paul, may be it makes sense to add the new trivial helper which > can be used instead? > > Yes, this is only cosmetic issue, I know ;) Cosmetic issues can be pretty important to the poor guy trying to read the code. ;-) What keeps the structure that rcu_dereference_raw() returns a pointer to from going away? Best would be if a lockdep condition could be constructed from the answer to this question and added to the appropriate rcu_dereference() primitive. Thanx, Paul -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html