[RFC V6 2/3] arm:add bitrev.h file to support rbit instruction
From: joe@perches.com (Joe Perches)
Date: 2014-11-14 06:55:15
Also in:
linux-mm, lkml
On Fri, 2014-11-14 at 07:37 +0100, Takashi Iwai wrote:
At Thu, 13 Nov 2014 16:05:30 -0800, Joe Perches wrote:quoted
On Thu, 2014-11-13 at 23:53 +0000, Russell King - ARM Linux wrote:quoted
On Fri, Oct 31, 2014 at 01:42:44PM +0800, Wang, Yalin wrote:quoted
This patch add bitrev.h file to support rbit instruction, so that we can do bitrev operation by hardware. Signed-off-by: Yalin Wang <redacted> --- arch/arm/Kconfig | 1 + arch/arm/include/asm/bitrev.h | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 arch/arm/include/asm/bitrev.hdiff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 89c4b5c..be92b3b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig@@ -28,6 +28,7 @@ config ARM select HANDLE_DOMAIN_IRQ select HARDIRQS_SW_RESEND select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT) + select HAVE_ARCH_BITREVERSE if (CPU_V7M || CPU_V7)Looking at this, this is just wrong. Take a moment to consider what happens if we build a kernel which supports both ARMv6 _and_ ARMv7 CPUs. What happens if an ARMv6 CPU tries to execute an rbit instruction? Second point (which isn't obvious from your submissions on-list) is that you've loaded the patch system up with patches for other parts of the kernel tree for which I am not responsible for. As such, I can't take those patches without the sub-tree maintainer acking them. Also, the commit text in those patches look weird: 6fire: Convert byte_rev_table uses to bitrev8 Use the inline function instead of directly indexing the array. This allows some architectures with hardware instructions for bit reversals to eliminate the array. Signed-off-by: Joe Perches <(address hidden)> Signed-off-by: Yalin Wang <(address hidden)> Why is Joe signing off on these patches? Shouldn't his entry be an Acked-by: ?I didn't sign off on or ack the "add bitrev.h" patch. I created 2 patches that converted direct uses of byte_rev_table to that bitrev8 static inline. One of them is already in -next 7a1283d8f5298437a454ec477384dcd9f9f88bac carl9170: Convert byte_rev_table uses to bitrev8 The other hasn't been applied. https://lkml.org/lkml/2014/10/28/1056 Maybe Takashi Iwai will get around to it one day.It was not clear to me whether I should apply it individually from others in the whole thread. Your description looked as if it makes sense only with ARM's bitrev8 support. So, again: should I apply this now to my tree?
I it would be good to apply even if the bitrev patch for arm is never applied. $ git grep -w bitrev8 | wc -l 110 vs this last direct use of byte_rev_table. cheers, Joe