mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Address nickm's issues from his review #1.
This commit is contained in:
parent
81dc435ffa
commit
5bd60d8a41
@ -88,7 +88,7 @@ static smartlist_t *entry_guards = NULL;
|
|||||||
static int entry_guards_dirty = 0;
|
static int entry_guards_dirty = 0;
|
||||||
|
|
||||||
/** If set, we're running the unit tests: we should avoid clobbering
|
/** If set, we're running the unit tests: we should avoid clobbering
|
||||||
* our state file. */
|
* our state file or accessing get_options() or get_or_state() */
|
||||||
static int unit_tests = 0;
|
static int unit_tests = 0;
|
||||||
|
|
||||||
/********* END VARIABLES ************/
|
/********* END VARIABLES ************/
|
||||||
@ -427,11 +427,15 @@ circuit_build_times_update_alpha(circuit_build_times_t *cbt)
|
|||||||
cbt->Xm = circuit_build_times_mode(cbt);
|
cbt->Xm = circuit_build_times_mode(cbt);
|
||||||
|
|
||||||
for (i=0; i< NCIRCUITS_TO_OBSERVE; i++) {
|
for (i=0; i< NCIRCUITS_TO_OBSERVE; i++) {
|
||||||
if (!x[i]) continue;
|
if (!x[i]) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Hrmm, should we count < Xm as Xm or just drop
|
if (x[i] < cbt->Xm) {
|
||||||
if (x[i] < cbt->Xm) a += ln(cbt->Xm);
|
a += ln(cbt->Xm);
|
||||||
else a += ln(x[i]);
|
} else {
|
||||||
|
a += ln(x[i]);
|
||||||
|
}
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
14
src/or/or.h
14
src/or/or.h
@ -2875,12 +2875,13 @@ void entry_guards_free_all(void);
|
|||||||
#define NCIRCUITS_TO_OBSERVE 5000
|
#define NCIRCUITS_TO_OBSERVE 5000
|
||||||
|
|
||||||
/** Width of the histogram bins in milliseconds */
|
/** Width of the histogram bins in milliseconds */
|
||||||
#define BUILDTIME_BIN_WIDTH 50
|
#define BUILDTIME_BIN_WIDTH ((build_time_t)50)
|
||||||
|
|
||||||
/** Cuttof point on the CDF for our timeout estimation.
|
/** Cuttof point on the CDF for our timeout estimation.
|
||||||
* TODO: This should be moved to the consensus */
|
* TODO: This should be moved to the consensus */
|
||||||
#define BUILDTIMEOUT_QUANTILE_CUTOFF 0.8
|
#define BUILDTIMEOUT_QUANTILE_CUTOFF 0.8
|
||||||
|
|
||||||
|
/** A build_time_t is milliseconds */
|
||||||
typedef uint32_t build_time_t;
|
typedef uint32_t build_time_t;
|
||||||
#define BUILD_TIME_MAX ((build_time_t)(INT32_MAX))
|
#define BUILD_TIME_MAX ((build_time_t)(INT32_MAX))
|
||||||
|
|
||||||
@ -2900,15 +2901,26 @@ typedef uint32_t build_time_t;
|
|||||||
#define BUILD_TIMES_SAVE_STATE_EVERY 10
|
#define BUILD_TIMES_SAVE_STATE_EVERY 10
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
/** The circular array of recorded build times in milliseconds */
|
||||||
build_time_t circuit_build_times[NCIRCUITS_TO_OBSERVE];
|
build_time_t circuit_build_times[NCIRCUITS_TO_OBSERVE];
|
||||||
|
/** The timestamp we last completed a TLS handshake or received a cell */
|
||||||
time_t network_last_live;
|
time_t network_last_live;
|
||||||
|
/** Last time we built a circuit. Used to decide to build new test circs */
|
||||||
time_t last_circ_at;
|
time_t last_circ_at;
|
||||||
|
/** Current index in the circuit_build_times circular array */
|
||||||
int build_times_idx;
|
int build_times_idx;
|
||||||
|
/** Total number of build times accumulated. Maxes at NCIRCUITS_TO_OBSERVE */
|
||||||
int total_build_times;
|
int total_build_times;
|
||||||
|
/** Number of timeouts that have happened before estimating pareto
|
||||||
|
* parameters */
|
||||||
int pre_timeouts;
|
int pre_timeouts;
|
||||||
|
/** "Minimum" value of our pareto distribution (actually mode) */
|
||||||
build_time_t Xm;
|
build_time_t Xm;
|
||||||
|
/** alpha exponent for pareto dis */
|
||||||
double alpha;
|
double alpha;
|
||||||
|
/** Have we computed a timeout? */
|
||||||
int have_computed_timeout;
|
int have_computed_timeout;
|
||||||
|
/** The value for that timeout in seconds, not milliseconds */
|
||||||
int timeout;
|
int timeout;
|
||||||
} circuit_build_times_t;
|
} circuit_build_times_t;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user