* [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.