openssl/crypto/bn
Geoff Thorpe bf43446835 bignum: allow concurrent BN_MONT_CTX_set_locked()
The lazy-initialisation of BN_MONT_CTX was serialising all threads, as
noted by Daniel Sands and co at Sandia. This was to handle the case that
2 or more threads race to lazy-init the same context, but stunted all
scalability in the case where 2 or more threads are doing unrelated
things! We favour the latter case by punishing the former. The init work
gets done by each thread that finds the context to be uninitialised, and
we then lock the "set" logic after that work is done - the winning
thread's work gets used, the losing threads throw away what they've done.

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
2014-05-06 18:01:59 -04:00
..
asm bn/asm/armv4-gf2m.pl, modes/asm/ghash-armv4.pl: faster multiplication 2014-04-24 10:27:52 +02:00
.cvsignore Ignore more. 2012-12-13 12:43:18 +00:00
bn.h Fix for CVE-2014-0076 2014-03-12 14:23:21 +00:00
bn.mul Import of old SSLeay release: SSLeay 0.9.1b (unreleased) 1998-12-21 11:00:56 +00:00
bn_add.c Revert the size_t modifications from HEAD that had led to more 2008-11-12 03:58:08 +00:00
bn_asm.c Bring C bn_mul_mont template closer to assembler. 2008-12-16 07:28:38 +00:00
bn_blind.c BN_BLINDING multi-threading fix. 2011-10-19 14:58:59 +00:00
bn_const.c Initialize bignum constants using BN_bin2bn() instead of BN_hex2bn(). This 2005-10-05 17:51:43 +00:00
bn_ctx.c Two digits is not wide enough. 2009-06-14 10:23:29 +00:00
bn_depr.c remove accidentally committed debugging cruft. 2003-10-29 05:35:31 +00:00
bn_div.c Reduce version skew: trivia (I hope). 2012-06-03 22:03:37 +00:00
bn_err.c fix error codes 2007-04-19 15:14:21 +00:00
bn_exp.c bignum: fix boundary condition in montgomery logic 2014-04-30 11:53:09 -04:00
bn_exp2.c PR: 2295 2010-10-11 23:25:23 +00:00
bn_gcd.c Reduce version skew: trivia (I hope). 2012-06-03 22:03:37 +00:00
bn_gf2m.c bn/bn_gf2m.c: make new BN_GF2m_mod_inv work with BN_DEBUG_RAND [from HEAD]. 2012-03-30 17:41:00 +00:00
bn_kron.c Add missing bn_check_top()s to bn_kron.c, remove some miscellaneous 2003-12-01 23:11:45 +00:00
bn_lcl.h Initial aarch64 bits. 2013-10-13 19:24:22 +02:00
bn_lib.c Fix for CVE-2014-0076 2014-03-12 14:23:21 +00:00
bn_mod.c When adding positive elements, we can use BN_uadd() instead of BN_add(). 2004-02-22 19:30:41 +00:00
bn_mont.c bignum: allow concurrent BN_MONT_CTX_set_locked() 2014-05-06 18:01:59 -04:00
bn_mpi.c Revert the size_t modifications from HEAD that had led to more 2008-11-12 03:58:08 +00:00
bn_mul.c Fix warnings (From HEAD, original patch by Ben). 2010-06-15 17:25:15 +00:00
bn_nist.c bn_nist.c: work around clang 3.0 bug. 2013-02-16 11:37:38 +01:00
bn_prime.c Minimize stack utilization in probable_prime. 2007-09-18 20:52:05 +00:00
bn_prime.h Minimize stack utilization in probable_prime. 2007-09-18 20:52:05 +00:00
bn_prime.pl Minimize stack utilization in probable_prime. 2007-09-18 20:52:05 +00:00
bn_print.c Move BN_options function to bn_print.c to remove dependency for BIO printf 2011-01-25 17:10:42 +00:00
bn_rand.c Revert the size_t modifications from HEAD that had led to more 2008-11-12 03:58:08 +00:00
bn_recp.c Revert the size_t modifications from HEAD that had led to more 2008-11-12 03:58:08 +00:00
bn_shift.c BN update from HEAD. 2011-11-14 21:05:42 +00:00
bn_sqr.c fix warnings when building openssl with the following compiler options: 2005-08-28 22:49:57 +00:00
bn_sqrt.c avoid potential spurious BN_free() 2005-08-23 04:14:40 +00:00
bn_word.c bn_word.c: fix overflow bug in BN_add_word. 2013-02-02 22:37:35 +01:00
bn_x931p.c add X9.31 prime generation routines from 0.9.8 branch 2011-01-09 13:22:47 +00:00
bnspeed.c Code for better build under Darwin (MacOS X). 2001-03-07 10:04:00 +00:00
bntest.c Backport from HEAD: 2011-06-06 11:49:36 +00:00
divtest.c Fix to build better with DJGPP. 2002-11-14 11:22:01 +00:00
exp.c - Pseudo-seed the PRNG in programs used for "make test" 2000-01-14 17:55:37 +00:00
expspeed.c Implement fixed-window exponentiation to mitigate hyper-threading 2005-05-16 01:43:31 +00:00
exptest.c Remove the dual-callback scheme for numeric and pointer thread IDs, 2008-08-06 15:54:15 +00:00
Makefile make update 2014-02-24 13:50:38 +00:00
rsaz_exp.c crypto/bn/asm/rsaz-x86_64.pl: make it work on Win64. 2013-12-03 22:30:00 +01:00
rsaz_exp.h Take RSAZ modules into build loop, add glue and engage. 2013-07-05 21:53:05 +02:00
todo Import of old SSLeay release: SSLeay 0.9.1b (unreleased) 1998-12-21 11:00:56 +00:00
vms-helper.c Use new-style system-id macros everywhere possible. I hope I haven't 2001-02-20 08:13:47 +00:00