perf: Comply with new rcu checks API
authorFrederic Weisbecker <fweisbec@gmail.com>
Thu, 20 May 2010 08:17:46 +0000 (10:17 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Thu, 20 May 2010 08:40:37 +0000 (10:40 +0200)
commit49f135ed02828a58b2401f149926c2e3c9cb0116
tree6f5541da5ad60131eb32beb42083443705351750
parentcbb5cf7ff6b298beacfe23db3386335b0b9c0a2d
perf: Comply with new rcu checks API

The software events hlist doesn't fully comply with the new
rcu checks api.

We need to consider three different sides that access the hlist:

- the hlist allocation/release side. This side happens when an
  events is created or released, accesses to the hlist are
  serialized under the cpuctx mutex.

- the events insertion/removal in the hlist. This side is always
  serialized against the above one. The hlist is always present
  during such operations. This side happens when a software event
  is scheduled in/out. The serialization that ensures the software
  event is really attached to the context is made under the
  ctx->lock.

- events triggering. This is the read side, it can happen
  concurrently with any update side.

This patch deals with them one by one and anticipates with the
separate rcu mem space patches in preparation.

This patch fixes various annoying rcu warnings.

Reported-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
kernel/perf_event.c