Patchwork powerpc: smp_wmb lwsync optimisation fix

login
register
mail settings
Submitter Nick Piggin
Date Nov. 1, 2008, 12:33 p.m.
Message ID <20081101123339.GA32055@wotan.suse.de>
Download mbox | patch
Permalink /patch/6790/
State Superseded
Headers show

Comments

Nick Piggin - Nov. 1, 2008, 12:33 p.m.
A previous change removed __SUBARCH_HAS_LWSYNC define, and replaced it
with __powerpc64__. smp_wmb() seems to be the last place not updated.

Signed-off-by: Nick Piggin <npiggin@suse.de>
---
Kumar Gala - Nov. 1, 2008, 4:47 p.m.
On Nov 1, 2008, at 7:33 AM, Nick Piggin wrote:

> A previous change removed __SUBARCH_HAS_LWSYNC define, and replaced it
> with __powerpc64__. smp_wmb() seems to be the last place not updated.

Uugh... no.. I missed the patch that removed __SUBARCH_HAS_LWSYNC, but  
thats no good.  We have LWSYNC on non-powerpc64 machines.  Will go  
figure out who forgets we have ppc32 machines :)

- k

>
>
> Signed-off-by: Nick Piggin <npiggin@suse.de>
> ---
> Index: linux-2.6/arch/powerpc/include/asm/system.h
> ===================================================================
> --- linux-2.6.orig/arch/powerpc/include/asm/system.h	2008-11-01  
> 20:31:51.000000000 +1100
> +++ linux-2.6/arch/powerpc/include/asm/system.h	2008-11-01  
> 20:32:33.000000000 +1100
> @@ -44,7 +44,7 @@
> #define AT_VECTOR_SIZE_ARCH 6 /* entries in ARCH_DLINFO */
> #ifdef CONFIG_SMP
>
> -#ifdef __SUBARCH_HAS_LWSYNC
> +#if defined(__powerpc64__)
> #    define SMPWMB      lwsync
> #else
> #    define SMPWMB      eieio
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
Nick Piggin - Nov. 2, 2008, 1:42 a.m.
On Sat, Nov 01, 2008 at 11:47:58AM -0500, Kumar Gala wrote:
> 
> On Nov 1, 2008, at 7:33 AM, Nick Piggin wrote:
> 
> >A previous change removed __SUBARCH_HAS_LWSYNC define, and replaced it
> >with __powerpc64__. smp_wmb() seems to be the last place not updated.
> 
> Uugh... no.. I missed the patch that removed __SUBARCH_HAS_LWSYNC, but  
> thats no good.  We have LWSYNC on non-powerpc64 machines.  Will go  
> figure out who forgets we have ppc32 machines :)

I think it may have been you :)

But actually, SMPWMB would need more massaging before it is suitable,
by the looks of your LWSYNC define in synch.h.

I don't mind, so much, about how this gets fixed. But it would be
nice to fix it somehow. After the smp_rmb and smp_wmb patches, there
are practically no sync instructions left in mm/ :)

> 
> - k
> 
> >
> >
> >Signed-off-by: Nick Piggin <npiggin@suse.de>
> >---
> >Index: linux-2.6/arch/powerpc/include/asm/system.h
> >===================================================================
> >--- linux-2.6.orig/arch/powerpc/include/asm/system.h	2008-11-01  
> >20:31:51.000000000 +1100
> >+++ linux-2.6/arch/powerpc/include/asm/system.h	2008-11-01  
> >20:32:33.000000000 +1100
> >@@ -44,7 +44,7 @@
> >#define AT_VECTOR_SIZE_ARCH 6 /* entries in ARCH_DLINFO */
> >#ifdef CONFIG_SMP
> >
> >-#ifdef __SUBARCH_HAS_LWSYNC
> >+#if defined(__powerpc64__)
> >#    define SMPWMB      lwsync
> >#else
> >#    define SMPWMB      eieio
> >_______________________________________________
> >Linuxppc-dev mailing list
> >Linuxppc-dev@ozlabs.org
> >https://ozlabs.org/mailman/listinfo/linuxppc-dev

Patch

Index: linux-2.6/arch/powerpc/include/asm/system.h
===================================================================
--- linux-2.6.orig/arch/powerpc/include/asm/system.h	2008-11-01 20:31:51.000000000 +1100
+++ linux-2.6/arch/powerpc/include/asm/system.h	2008-11-01 20:32:33.000000000 +1100
@@ -44,7 +44,7 @@ 
 #define AT_VECTOR_SIZE_ARCH 6 /* entries in ARCH_DLINFO */
 #ifdef CONFIG_SMP
 
-#ifdef __SUBARCH_HAS_LWSYNC
+#if defined(__powerpc64__)
 #    define SMPWMB      lwsync
 #else
 #    define SMPWMB      eieio