* [PATCH v5 1/3] lib/lzo: tidy-up ifdefs
2019-02-05 14:20 [PATCH v5 0/3] lib/lzo: performance improvements Dave Rodgman
@ 2019-02-05 14:20 ` Dave Rodgman
2019-02-05 14:20 ` [PATCH v5 2/3] lib/lzo: 64-bit CTZ on arm64 Dave Rodgman
2019-02-05 14:20 ` [PATCH v5 3/3] lib/lzo: fast 8-byte copy " Dave Rodgman
2 siblings, 0 replies; 4+ messages in thread
From: Dave Rodgman @ 2019-02-05 14:20 UTC (permalink / raw)
To: linux-kernel, Matt Sealey, Dave Rodgman, davem, gregkh, herbert,
markus, minchan, nitingupta910, rpurdie, sergey.senozhatsky.work,
sonnyrao, akpm, sfr
Cc: nd
Modify the ifdefs in lzodefs.h to be more consistent with normal kernel
macros (e.g., change __aarch64__ to CONFIG_ARM64).
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: David S. Miller <davem@davemloft.net>
Cc: Nitin Gupta <nitingupta910@gmail.com>
Cc: Richard Purdie <rpurdie@openedhand.com>
Cc: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Matt Sealey <matt.sealey@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
lib/lzo/lzodefs.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h
index 4edefd2f540c..497f9c9f03a8 100644
--- a/lib/lzo/lzodefs.h
+++ b/lib/lzo/lzodefs.h
@@ -15,7 +15,7 @@
#define COPY4(dst, src) \
put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst))
-#if defined(__x86_64__)
+#if defined(CONFIG_X86_64)
#define COPY8(dst, src) \
put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst))
#else
@@ -25,12 +25,12 @@
#if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
#error "conflicting endian definitions"
-#elif defined(__x86_64__)
+#elif defined(CONFIG_X86_64)
#define LZO_USE_CTZ64 1
#define LZO_USE_CTZ32 1
-#elif defined(__i386__) || defined(__powerpc__)
+#elif defined(CONFIG_X86) || defined(CONFIG_PPC)
#define LZO_USE_CTZ32 1
-#elif defined(__arm__) && (__LINUX_ARM_ARCH__ >= 5)
+#elif defined(CONFIG_ARM) && (__LINUX_ARM_ARCH__ >= 5)
#define LZO_USE_CTZ32 1
#endif
--
2.17.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v5 2/3] lib/lzo: 64-bit CTZ on arm64
2019-02-05 14:20 [PATCH v5 0/3] lib/lzo: performance improvements Dave Rodgman
2019-02-05 14:20 ` [PATCH v5 1/3] lib/lzo: tidy-up ifdefs Dave Rodgman
@ 2019-02-05 14:20 ` Dave Rodgman
2019-02-05 14:20 ` [PATCH v5 3/3] lib/lzo: fast 8-byte copy " Dave Rodgman
2 siblings, 0 replies; 4+ messages in thread
From: Dave Rodgman @ 2019-02-05 14:20 UTC (permalink / raw)
To: linux-kernel, Matt Sealey, Dave Rodgman, davem, gregkh, herbert,
markus, minchan, nitingupta910, rpurdie, sergey.senozhatsky.work,
sonnyrao, akpm, sfr
Cc: nd
From: Matt Sealey <matt.sealey@arm.com>
LZO leaves some performance on the table by not realising that arm64 can
optimize count-trailing-zeros bit operations.
Add CONFIG_ARM64 to the checked definitions alongside CONFIG_X86_64 to
enable the use of rbit/clz instructions on full 64-bit quantities.
Link: http://lkml.kernel.org/r/20181127161913.23863-5-dave.rodgman@arm.com
Signed-off-by: Matt Sealey <matt.sealey@arm.com>
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <nitingupta910@gmail.com>
Cc: Richard Purdie <rpurdie@openedhand.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Sonny Rao <sonnyrao@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
lib/lzo/lzodefs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h
index 497f9c9f03a8..00d1080155e4 100644
--- a/lib/lzo/lzodefs.h
+++ b/lib/lzo/lzodefs.h
@@ -25,7 +25,7 @@
#if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
#error "conflicting endian definitions"
-#elif defined(CONFIG_X86_64)
+#elif defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
#define LZO_USE_CTZ64 1
#define LZO_USE_CTZ32 1
#elif defined(CONFIG_X86) || defined(CONFIG_PPC)
--
2.17.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v5 3/3] lib/lzo: fast 8-byte copy on arm64
2019-02-05 14:20 [PATCH v5 0/3] lib/lzo: performance improvements Dave Rodgman
2019-02-05 14:20 ` [PATCH v5 1/3] lib/lzo: tidy-up ifdefs Dave Rodgman
2019-02-05 14:20 ` [PATCH v5 2/3] lib/lzo: 64-bit CTZ on arm64 Dave Rodgman
@ 2019-02-05 14:20 ` Dave Rodgman
2 siblings, 0 replies; 4+ messages in thread
From: Dave Rodgman @ 2019-02-05 14:20 UTC (permalink / raw)
To: linux-kernel, Matt Sealey, Dave Rodgman, davem, gregkh, herbert,
markus, minchan, nitingupta910, rpurdie, sergey.senozhatsky.work,
sonnyrao, akpm, sfr
Cc: nd
From: Matt Sealey <matt.sealey@arm.com>
Enable faster 8-byte copies on arm64.
Link: http://lkml.kernel.org/r/20181127161913.23863-6-dave.rodgman@arm.com
Signed-off-by: Matt Sealey <matt.sealey@arm.com>
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <nitingupta910@gmail.com>
Cc: Richard Purdie <rpurdie@openedhand.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Sonny Rao <sonnyrao@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
lib/lzo/lzodefs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h
index 00d1080155e4..fa0a45fed8c4 100644
--- a/lib/lzo/lzodefs.h
+++ b/lib/lzo/lzodefs.h
@@ -15,7 +15,7 @@
#define COPY4(dst, src) \
put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst))
-#if defined(CONFIG_X86_64)
+#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
#define COPY8(dst, src) \
put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst))
#else
--
2.17.1
^ permalink raw reply [flat|nested] 4+ messages in thread