summaryrefslogtreecommitdiffstats
path: root/crypto/lhash/lh_stats.c
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2017-09-28 10:09:18 +1000
committerPauli <paul.dale@oracle.com>2017-10-09 07:50:18 +1000
commit2e8b5d75afaff7c9b75917b750f997dc82336fac (patch)
treef30b5432cf98015569f3e284993b81c5d72ef976 /crypto/lhash/lh_stats.c
parent24b0be11b061f36d30ccccdf9d34edf270be4c2f (diff)
Document that lhash isn't thread safe under any circumstances and
indicate the level of locking required for various operations. Remove the lock and atomics from the lhash code. These we're not complete or adequate. Refer to #4418 and #4427 for details. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4429)
Diffstat (limited to 'crypto/lhash/lh_stats.c')
-rw-r--r--crypto/lhash/lh_stats.c31
1 files changed, 9 insertions, 22 deletions
diff --git a/crypto/lhash/lh_stats.c b/crypto/lhash/lh_stats.c
index 5586afa0d8..65b91e1ef4 100644
--- a/crypto/lhash/lh_stats.c
+++ b/crypto/lhash/lh_stats.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -61,35 +61,22 @@ void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp)
void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
{
- OPENSSL_LHASH *lh_mut = (OPENSSL_LHASH *) lh;
- int ret;
-
BIO_printf(out, "num_items = %lu\n", lh->num_items);
- BIO_printf(out, "num_nodes = %u\n", lh->num_nodes);
- BIO_printf(out, "num_alloc_nodes = %u\n", lh->num_alloc_nodes);
+ BIO_printf(out, "num_nodes = %u\n", lh->num_nodes);
+ BIO_printf(out, "num_alloc_nodes = %u\n", lh->num_alloc_nodes);
BIO_printf(out, "num_expands = %lu\n", lh->num_expands);
BIO_printf(out, "num_expand_reallocs = %lu\n", lh->num_expand_reallocs);
BIO_printf(out, "num_contracts = %lu\n", lh->num_contracts);
- BIO_printf(out, "num_contract_reallocs = %lu\n",
- lh->num_contract_reallocs);
- CRYPTO_atomic_add(&lh_mut->num_hash_calls, 0, &ret,
- lh->retrieve_stats_lock);
- BIO_printf(out, "num_hash_calls = %d\n", ret);
- CRYPTO_atomic_add(&lh_mut->num_comp_calls, 0, &ret,
- lh->retrieve_stats_lock);
- BIO_printf(out, "num_comp_calls = %d\n", ret);
+ BIO_printf(out, "num_contract_reallocs = %lu\n", lh->num_contract_reallocs);
+ BIO_printf(out, "num_hash_calls = %lu\n", lh->num_hash_calls);
+ BIO_printf(out, "num_comp_calls = %lu\n", lh->num_comp_calls);
BIO_printf(out, "num_insert = %lu\n", lh->num_insert);
BIO_printf(out, "num_replace = %lu\n", lh->num_replace);
BIO_printf(out, "num_delete = %lu\n", lh->num_delete);
BIO_printf(out, "num_no_delete = %lu\n", lh->num_no_delete);
- CRYPTO_atomic_add(&lh_mut->num_retrieve, 0, &ret, lh->retrieve_stats_lock);
- BIO_printf(out, "num_retrieve = %d\n", ret);
- CRYPTO_atomic_add(&lh_mut->num_retrieve_miss, 0, &ret,
- lh->retrieve_stats_lock);
- BIO_printf(out, "num_retrieve_miss = %d\n", ret);
- CRYPTO_atomic_add(&lh_mut->num_hash_comps, 0, &ret,
- lh->retrieve_stats_lock);
- BIO_printf(out, "num_hash_comps = %d\n", ret);
+ BIO_printf(out, "num_retrieve = %lu\n", lh->num_retrieve);
+ BIO_printf(out, "num_retrieve_miss = %lu\n", lh->num_retrieve_miss);
+ BIO_printf(out, "num_hash_comps = %lu\n", lh->num_hash_comps);
}
void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out)