Re: [patch 2] mm: speculative get_page

From: Jesse Barnes
Date: Tue Jun 28 2005 - 16:39:18 EST


On Monday, June 27, 2005 10:08 pm, David S. Miller wrote:
> From: Nick Piggin <nickpiggin@xxxxxxxxxxxx>
> Subject: Re: [patch 2] mm: speculative get_page
> Date: Tue, 28 Jun 2005 14:50:31 +1000
>
> > William Lee Irwin III wrote:
> > >On Tue, Jun 28, 2005 at 11:42:16AM +1000, Nick Piggin wrote:
> > >
> > >spin_unlock() does not imply a memory barrier.
> >
> > Intriguing...
>
> BTW, I disagree with this assertion. spin_unlock() does imply a
> memory barrier.
>
> All memory operations before the release of the lock must execute
> before the lock release memory operation is globally visible.

On ia64 at least, the unlock is only a one way barrier. The store to
realease the lock uses release semantics (since the lock is declared
volatile), which implies that prior stores are visible before the
unlock occurs, but subsequent accesses can 'float up' above the unlock.
See http://www.gelato.unsw.edu.au/linux-ia64/0304/5122.html for some
more details.

Jesse
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/