Re: [PATCH 1/2] perf_counter: dynamically allocate tasks' perf_counter_context struct [v2]

Peter Zijlstra
2009-05-22T08:06:43Z

On Fri, 2009-05-22 at 14:17 +1000, Paul Mackerras wrote:
> + /*
> + * Make sure other cpus see correct values for *ctx
> + * once task->perf_counter_ctxp is visible to them.
> + */
> + smp_wmb();
> + tctx = cmpxchg(&task->perf_counter_ctxp, NULL, ctx);

Documentation/memory-barriers.txt:

> Any atomic operation that modifies some state in memory and returns information
> about the state (old or new) implies an SMP-conditional general memory barrier
> (smp_mb()) on each side of the actual operation (with the exception of
> explicit lock operations, described later). These include:

> cmpxchg();