diff options
author | Damjan Marion <damarion@cisco.com> | 2024-06-13 10:08:03 +0000 |
---|---|---|
committer | Andrew Yourtchenko <ayourtch@gmail.com> | 2024-06-14 12:12:34 +0000 |
commit | 624463342844a0b42b2924de5dad8ced122571f0 (patch) | |
tree | 69b0fa8063d1d1242bedfe3602f46e0e797c1f32 /src/plugins/crypto_native | |
parent | 55457075d9bc9ec76ae11874aceffc75f98e0f64 (diff) |
crypto-native: fix CPU detection for SHA2 code
Type: fix
Fixes: 9f2799f
Change-Id: Ib2b2df17507c536350ec92eeb1eea58f3a240c76
Signed-off-by: Damjan Marion <damarion@cisco.com>
(cherry picked from commit 2aa0f0da5dedcf6301c74a39b5e3749359e07e6d)
Diffstat (limited to 'src/plugins/crypto_native')
-rw-r--r-- | src/plugins/crypto_native/sha2.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/plugins/crypto_native/sha2.c b/src/plugins/crypto_native/sha2.c index 459ce6d8e79..6787f629104 100644 --- a/src/plugins/crypto_native/sha2.c +++ b/src/plugins/crypto_native/sha2.c @@ -118,13 +118,25 @@ sha2_key_add (vnet_crypto_key_t *key, clib_sha2_type_t type) static int probe () { -#if defined(__SHA__) && defined(__x86_64__) +#if defined(__x86_64__) + +#if defined(__SHA__) && defined(__AVX512F__) + if (clib_cpu_supports_sha () && clib_cpu_supports_avx512f ()) + return 30; +#elif defined(__SHA__) && defined(__AVX2__) + if (clib_cpu_supports_sha () && clib_cpu_supports_avx2 ()) + return 20; +#elif defined(__SHA__) if (clib_cpu_supports_sha ()) - return 50; -#elif defined(__ARM_FEATURE_SHA2) + return 10; +#endif + +#elif defined(__aarch64__) +#if defined(__ARM_FEATURE_SHA2) if (clib_cpu_supports_sha2 ()) return 10; #endif +#endif return -1; } |