diff mbox series

[ovs-dev,v1,1/1] hash: Enable hash_bytes128 optimization for aarch64.

Message ID DB7PR08MB3723E29B6F9AB4AAA8BD7F649E630@DB7PR08MB3723.eurprd08.prod.outlook.com
State Changes Requested
Headers show
Series [ovs-dev,v1,1/1] hash: Enable hash_bytes128 optimization for aarch64. | expand

Commit Message

Yanqin Wei Feb. 18, 2019, 5:46 a.m. UTC
"hash_bytes128" has two versions for 64 bits and 32 bits system. This
should be common optimization for their respective platforms.
But 64 bits version was only enabled in x86-64. This patch enable it for
aarch64 platform.
Micro benchmarking test was run in two kinds of arm platform.  It was
observed that 50% performance improvement in thunderX2 and 40%
improvement in TaiShan(Cortex-A72).

Signed-off-by: Yanqin Wei <yanqin.wei@arm.com>

---
lib/hash.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

--
2.7.4
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Comments

0-day Robot Feb. 18, 2019, 5:57 a.m. UTC | #1
Bleep bloop.  Greetings Yanqin Wei (Arm Technology China), I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


git-am:
fatal: corrupt patch at line 15
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 hash: Enable hash_bytes128 optimization for aarch64.
The copy of the patch that failed is found in:
   /var/lib/jenkins/jobs/upstream_build_from_pw/workspace/.git/rebase-apply/patch
When you have resolved this problem, run "git am --resolved".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".


Please check this out.  If you feel there has been an error, please email aconole@bytheb.org

Thanks,
0-day Robot
Ben Pfaff Feb. 22, 2019, 9:02 p.m. UTC | #2
On Mon, Feb 18, 2019 at 05:46:01AM +0000, Yanqin Wei (Arm Technology China) wrote:
> "hash_bytes128" has two versions for 64 bits and 32 bits system. This
> should be common optimization for their respective platforms.
> But 64 bits version was only enabled in x86-64. This patch enable it for
> aarch64 platform.
> Micro benchmarking test was run in two kinds of arm platform.  It was
> observed that 50% performance improvement in thunderX2 and 40%
> improvement in TaiShan(Cortex-A72).
> 
> Signed-off-by: Yanqin Wei <yanqin.wei@arm.com>

Thanks for working to make OVS better.

This patch is whitespace damaged.  For instance, lines that should begin
with spaces lack them.  I cannot apply it.

You can send the patch another way (for example, with "git send-email")
or use a Github pull request.
Yanqin Wei Feb. 26, 2019, 9:53 a.m. UTC | #3
Hi Ben,

Sorry for the format issue. I will resubmit it by "git send-email".

Best Regards,
Wei Yanqin

-----Original Message-----
From: Ben Pfaff <blp@ovn.org>
Sent: Saturday, February 23, 2019 5:03 AM
To: Yanqin Wei (Arm Technology China) <Yanqin.Wei@arm.com>
Cc: dev@openvswitch.org
Subject: Re: [ovs-dev] [PATCH v1 1/1] hash: Enable hash_bytes128 optimization for aarch64.

On Mon, Feb 18, 2019 at 05:46:01AM +0000, Yanqin Wei (Arm Technology China) wrote:
> "hash_bytes128" has two versions for 64 bits and 32 bits system. This
> should be common optimization for their respective platforms.
> But 64 bits version was only enabled in x86-64. This patch enable it
> for
> aarch64 platform.
> Micro benchmarking test was run in two kinds of arm platform.  It was
> observed that 50% performance improvement in thunderX2 and 40%
> improvement in TaiShan(Cortex-A72).
>
> Signed-off-by: Yanqin Wei <yanqin.wei@arm.com>

Thanks for working to make OVS better.

This patch is whitespace damaged.  For instance, lines that should begin with spaces lack them.  I cannot apply it.

You can send the patch another way (for example, with "git send-email") or use a Github pull request.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
diff mbox series

Patch

diff --git a/lib/hash.c b/lib/hash.c
index c64f25e..06f8339 100644
--- a/lib/hash.c
+++ b/lib/hash.c
@@ -72,7 +72,7 @@  hash_words64__(const uint64_t p[], size_t n_words, uint32_t basis)
     return hash_words64_inline(p, n_words, basis);
}

-#if !(defined(__x86_64__))
+#if !(defined(__x86_64__)) && !(defined(__aarch64__))
void
hash_bytes128(const void *p_, size_t len, uint32_t basis, ovs_u128 *out)
{
@@ -233,7 +233,7 @@  hash_bytes128(const void *p_, size_t len, uint32_t basis, ovs_u128 *out)
     out->u32[3] = h4;
}

-#else /* __x86_64__ */
+#else /* __x86_64__ or __aarch64__*/

static inline uint64_t
hash_rot64(uint64_t x, int8_t r)
@@ -361,4 +361,4 @@  hash_bytes128(const void *p_, size_t len, uint32_t basis, ovs_u128 *out)
     out->u64.lo = h1;
     out->u64.hi = h2;
}
-#endif /* __x86_64__ */
+#endif /* __x86_64__ or __aarch64__*/