From: Eric Vannier Date: Fri, 23 Mar 2018 04:32:56 +0000 (-0700) Subject: Allow AESNI to be used on all processor supporting AESNI, not just Intel's This impro... X-Git-Tag: talloc-2.1.13~228 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=77d88d75f6262a855e818a9b2b4018f8b6ced7b0;p=thirdparty%2Fsamba.git Allow AESNI to be used on all processor supporting AESNI, not just Intel's This improves performance/reduced CPU usage. Tests performed: - Ran on Ivy Bridge and Ryzen and verified that AESNI is detected (crypto tests) - Ran on Ryzen, and observed 50% increased speed. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13302 Signed-off-by: Eric Vannier Reviewed-by: Jeremy Allison Reviewed-by: Björn Jacke Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Tue Mar 27 13:50:09 CEST 2018 on sn-devel-144 --- diff --git a/lib/crypto/aes.c b/lib/crypto/aes.c index c226ac1b3df..d16d715482e 100644 --- a/lib/crypto/aes.c +++ b/lib/crypto/aes.c @@ -66,22 +66,6 @@ static bool has_intel_aes_instructions(void) return (bool)has_aes_instructions; } - __cpuid(cpuid_results, 0); - /* - * MSB LSB - * EBX = 'u' 'n' 'e' 'G' - * EDX = 'I' 'e' 'n' 'i' - * ECX = 'l' 'e' 't' 'n' - */ - if (memcmp((unsigned char *)&cpuid_results[1], "Genu", 4) != 0 || - memcmp((unsigned char *)&cpuid_results[3], - "ineI", 4) != 0 || - memcmp((unsigned char *)&cpuid_results[2], - "ntel", 4) != 0) { - has_aes_instructions = 0; - return (bool)has_aes_instructions; - } - __cpuid(cpuid_results, 1); has_aes_instructions = !!(cpuid_results[2] & (1 << 25)); return (bool)has_aes_instructions;