All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 2/3] x86/hash: swap arguments passed to crc32_u32()
@ 2014-02-27  8:47 Jan Beulich
  2014-02-27 18:52 ` H. Peter Anvin
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jan Beulich @ 2014-02-27  8:47 UTC (permalink / raw)
  To: mingo, tglx, Jan Beulich, hpa
  Cc: davem, dborkman, ffusco, tgraf, linux-kernel

... to match the function's parameters. While reportedly commutative,
using the proper order allows for leveraging the instruction permitting
the source operand to be in memory.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Francesco Fusco <ffusco@redhat.com>
Cc: Thomas Graf <tgraf@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
---
v2: now swapping arguments rather than parameters, as requested by hpa
---
 arch/x86/lib/hash.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- 3.14-rc4-x86-hash-crc32.orig/arch/x86/lib/hash.c
+++ 3.14-rc4-x86-hash-crc32/arch/x86/lib/hash.c
@@ -53,7 +53,7 @@ static u32 intel_crc4_2_hash(const void 
 	u32 i, tmp = 0;
 
 	for (i = 0; i < len / 4; i++)
-		seed = crc32_u32(*p32++, seed);
+		seed = crc32_u32(seed, *p32++);
 
 	switch (3 - (len & 0x03)) {
 	case 0:
@@ -64,7 +64,7 @@ static u32 intel_crc4_2_hash(const void 
 		/* fallthrough */
 	case 2:
 		tmp |= *((const u8 *) p32);
-		seed = crc32_u32(tmp, seed);
+		seed = crc32_u32(seed, tmp);
 	default:
 		break;
 	}
@@ -78,7 +78,7 @@ static u32 intel_crc4_2_hash2(const u32 
 	u32 i;
 
 	for (i = 0; i < len; i++)
-		seed = crc32_u32(*p32++, seed);
+		seed = crc32_u32(seed, *p32++);
 
 	return seed;
 }




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/3] x86/hash: swap arguments passed to crc32_u32()
  2014-02-27  8:47 [PATCH v2 2/3] x86/hash: swap arguments passed to crc32_u32() Jan Beulich
@ 2014-02-27 18:52 ` H. Peter Anvin
  2014-03-19 23:48 ` [tip:x86/hash] x86, hash: Swap " tip-bot for Jan Beulich
  2014-03-19 23:54 ` tip-bot for Jan Beulich
  2 siblings, 0 replies; 4+ messages in thread
From: H. Peter Anvin @ 2014-02-27 18:52 UTC (permalink / raw)
  To: Jan Beulich, mingo, tglx; +Cc: davem, dborkman, ffusco, tgraf, linux-kernel

On 02/27/2014 12:47 AM, Jan Beulich wrote:
> ... to match the function's parameters. While reportedly commutative,
> using the proper order allows for leveraging the instruction permitting
> the source operand to be in memory.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Daniel Borkmann <dborkman@redhat.com>
> Cc: Francesco Fusco <ffusco@redhat.com>
> Cc: Thomas Graf <tgraf@redhat.com>
> Cc: David S. Miller <davem@davemloft.net>

Acked-by: H. Peter Anvin <hpa@zytor.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip:x86/hash] x86, hash: Swap arguments passed to crc32_u32()
  2014-02-27  8:47 [PATCH v2 2/3] x86/hash: swap arguments passed to crc32_u32() Jan Beulich
  2014-02-27 18:52 ` H. Peter Anvin
@ 2014-03-19 23:48 ` tip-bot for Jan Beulich
  2014-03-19 23:54 ` tip-bot for Jan Beulich
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Jan Beulich @ 2014-03-19 23:48 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: ffusco, linux-kernel, hpa, mingo, dborkman, jbeulich, davem,
	tgraf, JBeulich, tglx, hpa

Commit-ID:  bbe831de1924f56596848919f98b195ed250fd28
Gitweb:     http://git.kernel.org/tip/bbe831de1924f56596848919f98b195ed250fd28
Author:     Jan Beulich <JBeulich@suse.com>
AuthorDate: Thu, 27 Feb 2014 08:47:34 +0000
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Wed, 19 Mar 2014 16:26:14 -0700

x86, hash: Swap arguments passed to crc32_u32()

... to match the function's parameters. While reportedly commutative,
using the proper order allows for leveraging the instruction permitting
the source operand to be in memory.

[ hpa: This code originated in the dpdk toolkit.  This was a bug in dpdk
  which has recently been fixed in part due to an earlier version of
  this patch. ]

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/530F09B6020000780011FBEB@nat28.tlf.novell.com
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Francesco Fusco <ffusco@redhat.com>
Cc: Thomas Graf <tgraf@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
 arch/x86/lib/hash.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/lib/hash.c b/arch/x86/lib/hash.c
index 060cc44..ac628aa 100644
--- a/arch/x86/lib/hash.c
+++ b/arch/x86/lib/hash.c
@@ -53,7 +53,7 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed)
 	u32 i, tmp = 0;
 
 	for (i = 0; i < len / 4; i++)
-		seed = crc32_u32(*p32++, seed);
+		seed = crc32_u32(seed, *p32++);
 
 	switch (3 - (len & 0x03)) {
 	case 0:
@@ -64,7 +64,7 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed)
 		/* fallthrough */
 	case 2:
 		tmp |= *((const u8 *) p32);
-		seed = crc32_u32(tmp, seed);
+		seed = crc32_u32(seed, tmp);
 	default:
 		break;
 	}
@@ -78,7 +78,7 @@ static u32 intel_crc4_2_hash2(const u32 *data, u32 len, u32 seed)
 	u32 i;
 
 	for (i = 0; i < len; i++)
-		seed = crc32_u32(*p32++, seed);
+		seed = crc32_u32(seed, *p32++);
 
 	return seed;
 }

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [tip:x86/hash] x86, hash: Swap arguments passed to crc32_u32()
  2014-02-27  8:47 [PATCH v2 2/3] x86/hash: swap arguments passed to crc32_u32() Jan Beulich
  2014-02-27 18:52 ` H. Peter Anvin
  2014-03-19 23:48 ` [tip:x86/hash] x86, hash: Swap " tip-bot for Jan Beulich
@ 2014-03-19 23:54 ` tip-bot for Jan Beulich
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Jan Beulich @ 2014-03-19 23:54 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: ffusco, linux-kernel, hpa, mingo, dborkman, jbeulich, davem,
	tgraf, JBeulich, tglx, hpa

Commit-ID:  c5cdfdf90901c51363441365997eecd58efd9374
Gitweb:     http://git.kernel.org/tip/c5cdfdf90901c51363441365997eecd58efd9374
Author:     Jan Beulich <JBeulich@suse.com>
AuthorDate: Thu, 27 Feb 2014 08:47:34 +0000
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Wed, 19 Mar 2014 16:51:04 -0700

x86, hash: Swap arguments passed to crc32_u32()

... to match the function's parameters. While reportedly commutative,
using the proper order allows for leveraging the instruction permitting
the source operand to be in memory.

[ hpa: This code originated in the dpdk toolkit.  This was a bug in dpdk
  which has recently been fixed in part due to an earlier version of
  this patch. ]

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/530F09B6020000780011FBEB@nat28.tlf.novell.com
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Francesco Fusco <ffusco@redhat.com>
Cc: Thomas Graf <tgraf@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
 arch/x86/lib/hash.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/lib/hash.c b/arch/x86/lib/hash.c
index 060cc44..ac628aa 100644
--- a/arch/x86/lib/hash.c
+++ b/arch/x86/lib/hash.c
@@ -53,7 +53,7 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed)
 	u32 i, tmp = 0;
 
 	for (i = 0; i < len / 4; i++)
-		seed = crc32_u32(*p32++, seed);
+		seed = crc32_u32(seed, *p32++);
 
 	switch (3 - (len & 0x03)) {
 	case 0:
@@ -64,7 +64,7 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed)
 		/* fallthrough */
 	case 2:
 		tmp |= *((const u8 *) p32);
-		seed = crc32_u32(tmp, seed);
+		seed = crc32_u32(seed, tmp);
 	default:
 		break;
 	}
@@ -78,7 +78,7 @@ static u32 intel_crc4_2_hash2(const u32 *data, u32 len, u32 seed)
 	u32 i;
 
 	for (i = 0; i < len; i++)
-		seed = crc32_u32(*p32++, seed);
+		seed = crc32_u32(seed, *p32++);
 
 	return seed;
 }

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-03-19 23:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-27  8:47 [PATCH v2 2/3] x86/hash: swap arguments passed to crc32_u32() Jan Beulich
2014-02-27 18:52 ` H. Peter Anvin
2014-03-19 23:48 ` [tip:x86/hash] x86, hash: Swap " tip-bot for Jan Beulich
2014-03-19 23:54 ` tip-bot for Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.