Re: RFR: 8046943: RSA Acceleration

2015-06-29 Thread David M. Lloyd
On 06/29/2015 04:32 AM, Andrew Haley wrote: On 29/06/15 09:37, Vladimir Kozlov wrote: Hi, Andrew Did you file RFE for this change? 8046943 is JEP. No; I will do so. typo? less - more. + * number of ints in the number is less than this value we do not + * use the intrinsic. +

Re: RFR: 8046943: RSA Acceleration

2015-06-29 Thread Andrew Haley
On 06/29/2015 02:19 PM, David M. Lloyd wrote: Out of curiosity, instead of e.g.: unsigned long *scratch = (unsigned long *)alloca(total_allocation); Could you not just use e.g.: unsigned long scratch[longwords * 4]; and avoid alloca altogether? No. Variable-length are now in

Re: RFR: 8046943: RSA Acceleration

2015-06-29 Thread Andrew Haley
On 06/29/2015 02:19 PM, David M. Lloyd wrote: Out of curiosity, instead of e.g.: unsigned long *scratch = (unsigned long *)alloca(total_allocation); Could you not just use e.g.: unsigned long scratch[longwords * 4]; and avoid alloca altogether? No. Variable-length arrays are

Re: RFR: 8046943: RSA Acceleration

2015-06-29 Thread Andrew Haley
On 29/06/15 09:37, Vladimir Kozlov wrote: Hi, Andrew Did you file RFE for this change? 8046943 is JEP. No; I will do so. typo? less - more. + * number of ints in the number is less than this value we do not + * use the intrinsic. + */ +private static final int

Re: RFR: 8046943: RSA Acceleration

2015-06-29 Thread Vladimir Kozlov
Hi, Andrew Did you file RFE for this change? 8046943 is JEP. typo? less - more. + * number of ints in the number is less than this value we do not + * use the intrinsic. + */ +private static final int MONTGOMERY_INTRINSIC_THRESHOLD = 512; trailing spaces:

Re: RFR: 8046943: RSA Acceleration

2015-06-26 Thread Andrew Haley
On 06/19/2015 09:34 AM, Andrew Haley wrote: On 18/06/15 20:28, Vladimir Kozlov wrote: Yes, it is a lot of handwriting but we need it to work on all OSs. Sure, I get that. I knew there would be a few goes around with this, but it's worth the pain for the performance improvement. I made

Re: RFR: 8046943: RSA Acceleration

2015-06-19 Thread Andrew Haley
On 18/06/15 20:28, Vladimir Kozlov wrote: We have few new rules regarding intrinsics. You need to add private static java method which does range checks because their are not executed in intrinsic code - see squareToLen() implementation, for example. Okay. Note, we will rewrite

Re: RFR: 8046943: RSA Acceleration

2015-06-18 Thread Anthony Scarpino
On 06/16/2015 07:33 AM, Andrew Haley wrote: On 06/15/2015 05:58 PM, Andrew Haley wrote: 3. I fused squaring and multiplication into a single montgomeryMultiply method. ... I don't agree with fusing them together. I think there should two separate intrinsics. For one, SPARC has a montsqr

Re: RFR: 8046943: RSA Acceleration

2015-06-18 Thread Anthony Scarpino
On 06/18/2015 10:07 AM, Andrew Haley wrote: On 06/18/2015 06:00 PM, Anthony Scarpino wrote: Question, on the hotspot side you said in a previous post this was C2-only. Was there a reason you don't have it for all? None. It's up for negotiation. What do you want? C1, interp? Andrew.

Re: RFR: 8046943: RSA Acceleration

2015-06-18 Thread Andrew Haley
On 06/18/2015 06:00 PM, Anthony Scarpino wrote: Question, on the hotspot side you said in a previous post this was C2-only. Was there a reason you don't have it for all? None. It's up for negotiation. What do you want? C1, interp? Andrew.

Re: RFR: 8046943: RSA Acceleration

2015-06-18 Thread Vladimir Kozlov
Andrew, We have few new rules regarding intrinsics. You need to add private static java method which does range checks because their are not executed in intrinsic code - see squareToLen() implementation, for example. Note, we will rewrite multiplyToLen() too soon. Also method which will be

Re: RFR: 8046943: RSA Acceleration

2015-06-16 Thread Andrew Haley
On 06/15/2015 05:58 PM, Andrew Haley wrote: 3. I fused squaring and multiplication into a single montgomeryMultiply method. ... I don't agree with fusing them together. I think there should two separate intrinsics. For one, SPARC has a montsqr and montmul instructions.

Re: RFR: 8046943: RSA Acceleration

2015-06-15 Thread Anthony Scarpino
On 06/15/2015 09:58 AM, Andrew Haley wrote: On 06/15/2015 05:38 PM, Anthony Scarpino wrote: On 06/12/2015 04:06 AM, Andrew Haley wrote: http://cr.openjdk.java.net/~aph/8046943-hs-1/ http://cr.openjdk.java.net/~aph/8046943-jdk-1/ Please don't use the JEP 246 in the comments when you push.

Re: RFR: 8046943: RSA Acceleration

2015-06-15 Thread Anthony Scarpino
[Resent: I dropped the security list by mistake] On 06/12/2015 04:06 AM, Andrew Haley wrote: http://cr.openjdk.java.net/~aph/8046943-hs-1/ http://cr.openjdk.java.net/~aph/8046943-jdk-1/ Please don't use the JEP 246 in the comments when you push. There are a number of changesets related to

Re: RFR: 8046943: RSA Acceleration

2015-06-15 Thread Andrew Haley
On 06/15/2015 05:38 PM, Anthony Scarpino wrote: On 06/12/2015 04:06 AM, Andrew Haley wrote: http://cr.openjdk.java.net/~aph/8046943-hs-1/ http://cr.openjdk.java.net/~aph/8046943-jdk-1/ Please don't use the JEP 246 in the comments when you push. There are a number of changesets related to

Re: RFR: 8046943: RSA Acceleration

2015-06-12 Thread Andrew Haley
On 06/12/2015 12:06 PM, Andrew Haley wrote: Sorry, I forgot the column labels. The are: signverifysign/s verify/s rsa 512 bits 0.000134s 0.09s 7444.2 111853.3 rsa 1024 bits 0.000674s 0.29s 1483.9 34456.9 rsa 2048 bits 0.003945s 0.000100s253.5

RFR: 8046943: RSA Acceleration

2015-06-12 Thread Andrew Haley
http://cr.openjdk.java.net/~aph/8046943-hs-1/ http://cr.openjdk.java.net/~aph/8046943-jdk-1/ Before: rsa 512 bits 0.000134s 0.09s 7444.2 111853.3 rsa 1024 bits 0.000674s 0.29s 1483.9 34456.9 rsa 2048 bits 0.003945s 0.000100s253.5 9994.7 rsa 4096 bits 0.027015s 0.000373s