diff mbox

[1/2] powerpc: Only disable HAVE_EFFICIENT_UNALIGNED_ACCESS on POWER7 little endian

Message ID 1474806941-5006-1-git-send-email-anton@ozlabs.org (mailing list archive)
State Accepted
Headers show

Commit Message

Anton Blanchard Sept. 25, 2016, 12:35 p.m. UTC
From: Anton Blanchard <anton@samba.org>

POWER8 handles unaligned accesses in little endian mode, but commit
0b5e6661ac69 ("powerpc: Don't set HAVE_EFFICIENT_UNALIGNED_ACCESS on
little endian builds") disabled it for all.

The issue with unaligned little endian accesses is specific to POWER7,
so update the Kconfig check to match. Using the stat() testcase from
commit a75c380c7129 ("powerpc: Enable DCACHE_WORD_ACCESS on ppc64le"),
performance improves 15% on POWER8.

Signed-off-by: Anton Blanchard <anton@samba.org>
---
 arch/powerpc/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Benjamin Herrenschmidt Sept. 25, 2016, 10:45 p.m. UTC | #1
On Sun, 2016-09-25 at 22:35 +1000, Anton Blanchard wrote:
> From: Anton Blanchard <anton@samba.org>
> 
> POWER8 handles unaligned accesses in little endian mode, but commit
> 0b5e6661ac69 ("powerpc: Don't set HAVE_EFFICIENT_UNALIGNED_ACCESS on
> little endian builds") disabled it for all.
> 
> The issue with unaligned little endian accesses is specific to
> POWER7,
> so update the Kconfig check to match. Using the stat() testcase from
> commit a75c380c7129 ("powerpc: Enable DCACHE_WORD_ACCESS on
> ppc64le"),
> performance improves 15% on POWER8.

Hrm.. this should really be a runtime switch...

> Signed-off-by: Anton Blanchard <anton@samba.org>
> ---
>  arch/powerpc/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 0a70c86..04c447d 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -96,7 +96,7 @@ config PPC
>  	select VIRT_TO_BUS if !PPC64
>  	select HAVE_IDE
>  	select HAVE_IOREMAP_PROT
> -	select HAVE_EFFICIENT_UNALIGNED_ACCESS if !CPU_LITTLE_ENDIAN
> +	select HAVE_EFFICIENT_UNALIGNED_ACCESS if
> !(CPU_LITTLE_ENDIAN && POWER7_CPU)
>  	select HAVE_KPROBES
>  	select HAVE_ARCH_KGDB
>  	select HAVE_KRETPROBES
Anton Blanchard Sept. 25, 2016, 11:07 p.m. UTC | #2
Hi Ben,

> Hrm.. this should really be a runtime switch...

I wonder if anyone is still running POWER7 LE, perhaps we could drop it
entirely.

Anton
Michael Ellerman Oct. 5, 2016, 2:36 a.m. UTC | #3
On Sun, 2016-25-09 at 12:35:40 UTC, Anton Blanchard wrote:
> From: Anton Blanchard <anton@samba.org>
> 
> POWER8 handles unaligned accesses in little endian mode, but commit
> 0b5e6661ac69 ("powerpc: Don't set HAVE_EFFICIENT_UNALIGNED_ACCESS on
> little endian builds") disabled it for all.
> 
> The issue with unaligned little endian accesses is specific to POWER7,
> so update the Kconfig check to match. Using the stat() testcase from
> commit a75c380c7129 ("powerpc: Enable DCACHE_WORD_ACCESS on ppc64le"),
> performance improves 15% on POWER8.
> 
> Signed-off-by: Anton Blanchard <anton@samba.org>

Series applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/8a18cc0c2c36ee49d70a620ac0190d

cheers
diff mbox

Patch

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 0a70c86..04c447d 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -96,7 +96,7 @@  config PPC
 	select VIRT_TO_BUS if !PPC64
 	select HAVE_IDE
 	select HAVE_IOREMAP_PROT
-	select HAVE_EFFICIENT_UNALIGNED_ACCESS if !CPU_LITTLE_ENDIAN
+	select HAVE_EFFICIENT_UNALIGNED_ACCESS if !(CPU_LITTLE_ENDIAN && POWER7_CPU)
 	select HAVE_KPROBES
 	select HAVE_ARCH_KGDB
 	select HAVE_KRETPROBES