Thread (19 messages) flat view 19 messages, 4 authors, 2015-01-16

[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.h
diff --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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help