openssl/crypto/bn
Geoff Thorpe d8afda60a9 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:10:21 -04:00
..
asm bn/asm/x86_64-mont5.pl: comply with Win64 ABI. 2013-12-04 00:03:46 +01:00
.cvsignore Apply mingw patches as supplied by Roumen Petrov an Alon Bar-Lev 2008-04-17 10:19:16 +00:00
bn.h Fix for CVE-2014-0076 2014-03-12 14:19:54 +00:00
bn.mul
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
bn_ctx.c Two digits is not wide enough. 2009-06-14 10:23:29 +00:00
bn_depr.c
bn_div.c Reduce version skew. 2012-06-08 09:18:47 +00:00
bn_err.c fix error codes 2007-04-19 15:14:21 +00:00
bn_exp.c BN update from HEAD. 2011-11-14 21:05:42 +00:00
bn_exp2.c PR: 2295 2010-10-11 23:25:23 +00:00
bn_gcd.c Reduce version skew. 2012-06-08 09:18:47 +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:40:52 +00:00
bn_kron.c
bn_lcl.h bn_lcl.h: gcc removed support for "h" constraint, which broke inline 2012-09-01 13:23:05 +00:00
bn_lib.c Fix for CVE-2014-0076 2014-03-12 14:19:54 +00:00
bn_mod.c
bn_mont.c bignum: allow concurrent BN_MONT_CTX_set_locked() 2014-05-06 18:10:21 -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: cumulative update from master. 2013-02-16 11:40:35 +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
bn_sqrt.c
bn_word.c bn_word.c: fix overflow bug in BN_add_word. 2013-02-02 22:39:00 +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
bntest.c Backport from HEAD: 2011-06-06 11:49:36 +00:00
divtest.c
exp.c
expspeed.c
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-01-06 13:33:27 +00:00
todo
vms-helper.c