[patch 2/2] powerpc: optimise smp_wmb
Nick Piggin
npiggin at suse.de
Thu May 22 01:47:02 EST 2008
On Wed, May 21, 2008 at 11:43:00AM -0400, Benjamin Herrenschmidt wrote:
>
> On Wed, 2008-05-21 at 17:34 +0200, Nick Piggin wrote:
> > On Wed, May 21, 2008 at 11:26:32AM -0400, Benjamin Herrenschmidt wrote:
> > >
> > > On Wed, 2008-05-21 at 16:12 +0200, Nick Piggin wrote:
> > > > lwsync is the recommended method of store/store ordering on caching enabled
> > > > memory. For those subarchs which have lwsync, use it rather than eieio for
> > > > smp_wmb.
> > >
> > > Yuck... existence of lwsync depends on the processor at boot time...
> >
> > Not according to the __stringify(LWSYNC) that I just removed. At least,
> > presumably it is always present on 64 bit processors, and 32 bit ones
> > will be no worse off as they'll continue just using eieio.
>
> No, it doesn't exist on power3, but it degrades into a sync
OK, but I just don't understand what the problem is... your synch.h has
#ifdef __powerpc64__
#define __SUBARCH_HAS_LWSYNC
#endif
#ifdef __SUBARCH_HAS_LWSYNC
# define LWSYNC lwsync
#else
# define LWSYNC sync
#endif
And LWSYNC is then used for rmb()... how was that OK but this not?
More information about the Linuxppc-dev
mailing list