From: Dave Rodgman <dave.rodgman@arm.com>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: nd <nd@arm.com>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"davem@davemloft.net" <davem@davemloft.net>,
Matt Sealey <Matt.Sealey@arm.com>,
"nitingupta910@gmail.com" <nitingupta910@gmail.com>,
"rpurdie@openedhand.com" <rpurdie@openedhand.com>,
"markus@oberhumer.com" <markus@oberhumer.com>,
"minchan@kernel.org" <minchan@kernel.org>,
"sergey.senozhatsky.work@gmail.com"
<sergey.senozhatsky.work@gmail.com>,
"sonnyrao@google.com" <sonnyrao@google.com>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: [PATCH 3/7] lib/lzo: enable 64-bit CTZ on Arm
Date: Tue, 27 Nov 2018 16:19:32 +0000 [thread overview]
Message-ID: <20181127161913.23863-4-dave.rodgman@arm.com> (raw)
In-Reply-To: <20181127161913.23863-1-dave.rodgman@arm.com>
From: Matt Sealey <matt.sealey@arm.com>
ARMv6 Thumb state introduced an RBIT instruction which, combined with CLZ
as present in ARMv5, introduces an extremely fast path for counting
trailing zeroes.
Enable the use of the GCC builtin for this on ARMv6+ with
CONFIG_THUMB2_KERNEL to ensure we get the 'new' instruction usage.
We do not bother enabling LZO_USE_CTZ64 support for ARMv5 as the builtin
code path does the same thing as the LZO_USE_CTZ32 code, only with more
register pressure.
Signed-off-by: Matt Sealey <matt.sealey@arm.com>
---
lib/lzo/lzodefs.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h
index e1b3cf6459a9..c0193f726db0 100644
--- a/lib/lzo/lzodefs.h
+++ b/lib/lzo/lzodefs.h
@@ -33,9 +33,14 @@
#define LZO_USE_CTZ32 1
#elif defined(CONFIG_X86) || defined(CONFIG_PPC)
#define LZO_USE_CTZ32 1
-#elif defined(CONFIG_ARM) && (__LINUX_ARM_ARCH__ >= 5)
+#elif defined(CONFIG_ARM)
+#if (__LINUX_ARM_ARCH__ >= 5)
#define LZO_USE_CTZ32 1
#endif
+#if (__LINUX_ARM_ARCH__ >= 6) && defined(CONFIG_THUMB2_KERNEL)
+#define LZO_USE_CTZ64 1
+#endif
+#endif
#define M1_MAX_OFFSET 0x0400
#define M2_MAX_OFFSET 0x0800
--
2.16.4
next prev parent reply other threads:[~2018-11-27 16:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-27 16:19 [PATCH v2 0/7] lib/lzo: performance improvements Dave Rodgman
2018-11-27 16:19 ` [PATCH 1/7] lib/lzo: tidy-up ifdefs Dave Rodgman
2018-11-27 16:19 ` [PATCH 2/7] lib/lzo: clean-up by introducing COPY16 Dave Rodgman
2018-11-27 22:50 ` Andrew Morton
2018-11-27 16:19 ` Dave Rodgman [this message]
2018-11-27 16:19 ` [PATCH 4/7] lib/lzo: 64-bit CTZ on arm64 Dave Rodgman
2018-11-27 16:19 ` [PATCH 5/7] lib/lzo: fast 8-byte copy " Dave Rodgman
2018-11-27 16:19 ` [PATCH 6/7] lib/lzo: implement run-length encoding Dave Rodgman
2018-11-29 3:08 ` Sergey Senozhatsky
2018-11-29 3:11 ` Sergey Senozhatsky
2018-11-27 16:19 ` [PATCH 7/7] lib/lzo: separate lzo-rle from lzo Dave Rodgman
2018-11-29 4:43 ` Sergey Senozhatsky
2018-11-29 10:21 ` Dave Rodgman
2018-11-29 20:32 ` Andrew Morton
2018-11-30 3:05 ` Sergey Senozhatsky
2018-11-30 10:45 ` Dave Rodgman
2018-12-03 2:40 ` Sergey Senozhatsky
2018-12-03 2:53 ` Herbert Xu
2018-11-29 4:46 ` [PATCH v2 0/7] lib/lzo: performance improvements Sergey Senozhatsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181127161913.23863-4-dave.rodgman@arm.com \
--to=dave.rodgman@arm.com \
--cc=Matt.Sealey@arm.com \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=gregkh@linuxfoundation.org \
--cc=herbert@gondor.apana.org.au \
--cc=linux-kernel@vger.kernel.org \
--cc=markus@oberhumer.com \
--cc=minchan@kernel.org \
--cc=nd@arm.com \
--cc=nitingupta910@gmail.com \
--cc=rpurdie@openedhand.com \
--cc=sergey.senozhatsky.work@gmail.com \
--cc=sonnyrao@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).