RFR(S)JDK-8214074: Ghash optimization using AVX instructions

Kamath, Smita smita.kamath at intel.com
Tue Nov 20 17:58:31 UTC 2018

Hi Bernd,

I agree to both of your comments and will update my code with the changes.


From: Bernd Eckenfels [mailto:ecki at zusammenkunft.net]
Sent: Monday, November 19, 2018 2:27 PM
To: Kamath, Smita <smita.kamath at intel.com>; 'Vladimir Kozlov' <vladimir.kozlov at oracle.com>
Cc: core-libs-dev at openjdk.java.net; security-dev at openjdk.java.net
Subject: Re: RFR(S)JDK-8214074: Ghash optimization using AVX instructions


What is the purpose of setting some of them to 0 twice? (It's a new array which should be all-0 anyway.)

+      for (int i = 1; i < 9 ; i++) {
+            subkeyHtbl[2*i] = 0;
+            subkeyHtbl[2*i+1] = 0;
+        }

Also, is the subkeyH no longer be needed (or can be redesigned to use subkeyHtbl[0] and 1?


Von: core-libs-dev <core-libs-dev-bounces at openjdk.java.net<mailto:core-libs-dev-bounces at openjdk.java.net>> im Auftrag von Kamath, Smita <smita.kamath at intel.com<mailto:smita.kamath at intel.com>>
Gesendet: Montag, November 19, 2018 10:52 PM
An: 'Vladimir Kozlov'
Cc: Anthony Scarpino; core-libs-dev at openjdk.java.net<mailto:core-libs-dev at openjdk.java.net>; hotspot compiler
Betreff: RFR(S)JDK-8214074: Ghash optimization using AVX instructions

Hi Vladimir,

I'd like to contribute an optimization for GHASH Algorithm using AVX Instructions. I have tested this optimization on SKX x86_64 platform and it shows ~20-30% performance improvement for larger message sizes (for example 8k).

I, smita.kamath at intel.com<mailto:smita.kamath at intel.com<mailto:smita.kamath at intel.com%3cmailto:smita.kamath at intel.com>> , Shay Gueuron, (shay.gueron at intel.com<mailto:shay.gueron at intel.com<mailto:shay.gueron at intel.com%3cmailto:shay.gueron at intel.com>>) and Regev Shemy (regev.shemy at intel.com<mailto:regev.shemy at intel.com<mailto:regev.shemy at intel.com%3cmailto:regev.shemy at intel.com>>) are contributors to this code.

Link to Bug: https://bugs.openjdk.java.net/browse/JDK-8214074

Link to webrev: http://cr.openjdk.java.net/~svkamath/ghash/webrev/

For testing the implementation, I have executed TestAESMain.java. I have executed Jtreg tests and tested this code on 64 bit Windows and Linux platforms.

Please review and let me know if you have any comments.

Thanks and Regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/security-dev/attachments/20181120/9edccbf6/attachment.html>

More information about the security-dev mailing list