diff options
author | Yanqin Wei <Yanqin.Wei@arm.com> | 2019-02-27 17:44:06 +0800 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2019-02-27 10:22:52 -0800 |
commit | d74c920219e3df88a9f535d7e3d2df279463a048 (patch) | |
tree | 6b2d2af29bfe9beb2c400eae116a4cda26e23b23 /lib | |
parent | ec9895b210f6206cfa7ae2fa665b0192e7e0f184 (diff) | |
download | openvswitch-d74c920219e3df88a9f535d7e3d2df279463a048.tar.gz |
hash: Enable hash_bytes128 optimization for aarch64.
"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>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/hash.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/hash.c b/lib/hash.c index c64f25e63..06f83395c 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__*/ |