Subject: Re: [PATCH] Document Linux's memory barriers [try #5]

From: David Howells <[email-masked]>
Date: Thu, 23 Mar 2006 18:34:27 +0000

Paul E. McKenney <[email-masked]> wrote:

> smp_mb__before_atomic_dec() and friends as well?

These seem to be something Sparc64 related; or, at least, Sparc64 seems to do
something weird with them.

What are these meant to achieve anyway? They seems to just be barrier() on a
lot of systems, even SMP ones.

> Some architectures have more expansive definition of data dependency,
> including then- and else-clauses being data-dependent on the if-condition,
> but this is probably too much detail.

Linus calls that a "control dependency" and doesn't seem to think that's a
problem as it's sorted out by branch prediction.  What you said makes me
wonder about conditional instructions (such as conditional move).

Anyway, I've incorporated your comments as well as reworking the document,
which I'll shortly push upstream once again.

David