crypto-native: fix CPU detection for SHA2 code 23/41123/1
authorDamjan Marion <[email protected]>
Thu, 13 Jun 2024 10:08:03 +0000 (10:08 +0000)
committerAndrew Yourtchenko <[email protected]>
Fri, 14 Jun 2024 12:12:34 +0000 (12:12 +0000)
Type: fix
Fixes: 9f2799f
Change-Id: Ib2b2df17507c536350ec92eeb1eea58f3a240c76
Signed-off-by: Damjan Marion <[email protected]>
(cherry picked from commit 2aa0f0da5dedcf6301c74a39b5e3749359e07e6d)

src/plugins/crypto_native/sha2.c

index 459ce6d..6787f62 100644 (file)
@@ -118,12 +118,24 @@ 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;
 }