mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Remove lingering mempool code
This commit is contained in:
parent
385558c32f
commit
5246e8f992
11
configure.ac
11
configure.ac
@ -59,17 +59,6 @@ if test "$enable_system_torrc" = "no"; then
|
||||
[Defined if we're not going to look for a torrc in SYSCONF])
|
||||
fi
|
||||
|
||||
if test x$enable_buf_freelists = xyes; then
|
||||
AC_DEFINE(ENABLE_BUF_FREELISTS, 1,
|
||||
[Defined if we try to use freelists for buffer RAM chunks])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(USE_MEMPOOLS, test x$enable_mempools = xyes)
|
||||
if test x$enable_mempools = xyes; then
|
||||
AC_DEFINE(ENABLE_MEMPOOLS, 1,
|
||||
[Defined if we try to use mempools for cells being relayed])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(USE_OPENBSD_MALLOC, test x$enable_openbsd_malloc = xyes)
|
||||
if test x$enable_instrument_downloads = xyes; then
|
||||
AC_DEFINE(INSTRUMENT_DOWNLOADS, 1,
|
||||
|
@ -1987,11 +1987,6 @@ do_main_loop(void)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
/* Set up the packed_cell_t memory pool. */
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
/* Set up our buckets */
|
||||
connection_bucket_init();
|
||||
#ifndef USE_BUFFEREVENTS
|
||||
@ -2646,9 +2641,6 @@ tor_free_all(int postfork)
|
||||
router_free_all();
|
||||
policies_free_all();
|
||||
}
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
if (!postfork) {
|
||||
tor_tls_free_all();
|
||||
#ifndef _WIN32
|
||||
|
@ -26,9 +26,6 @@
|
||||
#include "control.h"
|
||||
#include "geoip.h"
|
||||
#include "main.h"
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
#include "mempool.h"
|
||||
#endif
|
||||
#include "networkstatus.h"
|
||||
#include "nodelist.h"
|
||||
#include "onion.h"
|
||||
@ -2252,62 +2249,12 @@ circuit_consider_sending_sendme(circuit_t *circ, crypt_path_t *layer_hint)
|
||||
/** The total number of cells we have allocated. */
|
||||
static size_t total_cells_allocated = 0;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
/** A memory pool to allocate packed_cell_t objects. */
|
||||
static mp_pool_t *cell_pool = NULL;
|
||||
|
||||
/** Allocate structures to hold cells. */
|
||||
void
|
||||
init_cell_pool(void)
|
||||
{
|
||||
tor_assert(!cell_pool);
|
||||
cell_pool = mp_pool_new(sizeof(packed_cell_t), 128*1024);
|
||||
}
|
||||
|
||||
/** Free all storage used to hold cells (and insertion times/commands if we
|
||||
* measure cell statistics and/or if CELL_STATS events are enabled). */
|
||||
void
|
||||
free_cell_pool(void)
|
||||
{
|
||||
/* Maybe we haven't called init_cell_pool yet; need to check for it. */
|
||||
if (cell_pool) {
|
||||
mp_pool_destroy(cell_pool);
|
||||
cell_pool = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/** Free excess storage in cell pool. */
|
||||
void
|
||||
clean_cell_pool(void)
|
||||
{
|
||||
tor_assert(cell_pool);
|
||||
mp_pool_clean(cell_pool, 0, 1);
|
||||
}
|
||||
|
||||
#define relay_alloc_cell() \
|
||||
mp_pool_get(cell_pool)
|
||||
#define relay_free_cell(cell) \
|
||||
mp_pool_release(cell)
|
||||
|
||||
#define RELAY_CELL_MEM_COST (sizeof(packed_cell_t) + MP_POOL_ITEM_OVERHEAD)
|
||||
|
||||
#else /* !ENABLE_MEMPOOLS case */
|
||||
|
||||
#define relay_alloc_cell() \
|
||||
tor_malloc_zero(sizeof(packed_cell_t))
|
||||
#define relay_free_cell(cell) \
|
||||
tor_free(cell)
|
||||
|
||||
#define RELAY_CELL_MEM_COST (sizeof(packed_cell_t))
|
||||
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
/** Release storage held by <b>cell</b>. */
|
||||
static INLINE void
|
||||
packed_cell_free_unchecked(packed_cell_t *cell)
|
||||
{
|
||||
--total_cells_allocated;
|
||||
relay_free_cell(cell);
|
||||
tor_free(cell);
|
||||
}
|
||||
|
||||
/** Allocate and return a new packed_cell_t. */
|
||||
@ -2315,7 +2262,7 @@ STATIC packed_cell_t *
|
||||
packed_cell_new(void)
|
||||
{
|
||||
++total_cells_allocated;
|
||||
return relay_alloc_cell();
|
||||
return tor_malloc_zero(sizeof(packed_cell_t));
|
||||
}
|
||||
|
||||
/** Return a packed cell used outside by channel_t lower layer */
|
||||
@ -2344,9 +2291,6 @@ dump_cell_pool_usage(int severity)
|
||||
tor_log(severity, LD_MM,
|
||||
"%d cells allocated on %d circuits. %d cells leaked.",
|
||||
n_cells, n_circs, (int)total_cells_allocated - n_cells);
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
mp_pool_log_status(cell_pool, severity);
|
||||
#endif
|
||||
}
|
||||
|
||||
/** Allocate a new copy of packed <b>cell</b>. */
|
||||
@ -2426,7 +2370,7 @@ cell_queue_pop(cell_queue_t *queue)
|
||||
size_t
|
||||
packed_cell_mem_cost(void)
|
||||
{
|
||||
return RELAY_CELL_MEM_COST;
|
||||
return sizeof(packed_cell_t);
|
||||
}
|
||||
|
||||
/** DOCDOC */
|
||||
|
@ -42,11 +42,6 @@ extern uint64_t stats_n_data_bytes_packaged;
|
||||
extern uint64_t stats_n_data_cells_received;
|
||||
extern uint64_t stats_n_data_bytes_received;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
void init_cell_pool(void);
|
||||
void free_cell_pool(void);
|
||||
void clean_cell_pool(void);
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
void dump_cell_pool_usage(int severity);
|
||||
size_t packed_cell_mem_cost(void);
|
||||
|
||||
|
@ -49,9 +49,6 @@ double fabs(double x);
|
||||
#include "rendcommon.h"
|
||||
#include "test.h"
|
||||
#include "torgzip.h"
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
#include "mempool.h"
|
||||
#endif
|
||||
#include "memarea.h"
|
||||
#include "onion.h"
|
||||
#include "onion_ntor.h"
|
||||
|
@ -16,10 +16,6 @@ test_cq_manip(void *arg)
|
||||
cell_t cell;
|
||||
(void) arg;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
cell_queue_init(&cq);
|
||||
tt_int_op(cq.n, OP_EQ, 0);
|
||||
|
||||
@ -99,10 +95,6 @@ test_cq_manip(void *arg)
|
||||
packed_cell_free(pc_tmp);
|
||||
|
||||
cell_queue_clear(&cq);
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
}
|
||||
|
||||
static void
|
||||
@ -114,10 +106,6 @@ test_circuit_n_cells(void *arg)
|
||||
|
||||
(void)arg;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
pc1 = packed_cell_new();
|
||||
pc2 = packed_cell_new();
|
||||
pc3 = packed_cell_new();
|
||||
@ -144,10 +132,6 @@ test_circuit_n_cells(void *arg)
|
||||
done:
|
||||
circuit_free(TO_CIRCUIT(or_c));
|
||||
circuit_free(TO_CIRCUIT(origin_c));
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
}
|
||||
|
||||
struct testcase_t cell_queue_tests[] = {
|
||||
|
@ -650,10 +650,6 @@ test_channel_flush(void *arg)
|
||||
|
||||
(void)arg;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
ch = new_fake_channel();
|
||||
tt_assert(ch);
|
||||
|
||||
@ -695,9 +691,6 @@ test_channel_flush(void *arg)
|
||||
|
||||
done:
|
||||
tor_free(ch);
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
return;
|
||||
}
|
||||
@ -715,10 +708,6 @@ test_channel_flushmux(void *arg)
|
||||
|
||||
(void)arg;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
/* Install mocks we need for this test */
|
||||
MOCK(channel_flush_from_first_active_circuit,
|
||||
chan_test_channel_flush_from_first_active_circuit_mock);
|
||||
@ -778,10 +767,6 @@ test_channel_flushmux(void *arg)
|
||||
|
||||
test_chan_accept_cells = 0;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1300,10 +1285,6 @@ test_channel_queue_impossible(void *arg)
|
||||
|
||||
(void)arg;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
ch = new_fake_channel();
|
||||
tt_assert(ch);
|
||||
|
||||
@ -1430,9 +1411,6 @@ test_channel_queue_impossible(void *arg)
|
||||
|
||||
done:
|
||||
free_fake_channel(ch);
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
/*
|
||||
* Doing that meant that we couldn't correctly adjust the queue size
|
||||
@ -1575,10 +1553,6 @@ test_channel_write(void *arg)
|
||||
|
||||
(void)arg;
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
packed_cell = packed_cell_new();
|
||||
tt_assert(packed_cell);
|
||||
|
||||
@ -1675,10 +1649,6 @@ test_channel_write(void *arg)
|
||||
packed_cell = NULL;
|
||||
tt_assert(test_cells_written == old_count);
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
done:
|
||||
free_fake_channel(ch);
|
||||
tor_free(var_cell);
|
||||
|
@ -43,9 +43,6 @@ test_cmux_destroy_cell_queue(void *arg)
|
||||
tor_libevent_initialize(&cfg);
|
||||
scheduler_init();
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
(void) arg;
|
||||
|
||||
cmux = circuitmux_alloc();
|
||||
@ -82,10 +79,6 @@ test_cmux_destroy_cell_queue(void *arg)
|
||||
circuitmux_free(cmux);
|
||||
channel_free(ch);
|
||||
packed_cell_free(pc);
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
}
|
||||
|
||||
struct testcase_t circuitmux_tests[] = {
|
||||
|
@ -13,9 +13,6 @@
|
||||
#include "compat_libevent.h"
|
||||
#include "connection.h"
|
||||
#include "config.h"
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
#include "mempool.h"
|
||||
#endif
|
||||
#include "relay.h"
|
||||
#include "test.h"
|
||||
|
||||
@ -143,10 +140,6 @@ test_oom_circbuf(void *arg)
|
||||
|
||||
MOCK(circuit_mark_for_close_, circuit_mark_for_close_dummy_);
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
/* Far too low for real life. */
|
||||
options->MaxMemInQueues = 256*packed_cell_mem_cost();
|
||||
options->CellStatistics = 0;
|
||||
@ -164,13 +157,8 @@ test_oom_circbuf(void *arg)
|
||||
tor_gettimeofday_cache_set(&tv);
|
||||
c2 = dummy_or_circuit_new(20, 20);
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
tt_int_op(packed_cell_mem_cost(), OP_EQ,
|
||||
sizeof(packed_cell_t) + MP_POOL_ITEM_OVERHEAD);
|
||||
#else
|
||||
tt_int_op(packed_cell_mem_cost(), OP_EQ,
|
||||
sizeof(packed_cell_t));
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
tt_int_op(cell_queues_get_total_allocation(), OP_EQ,
|
||||
packed_cell_mem_cost() * 70);
|
||||
tt_int_op(cell_queues_check_size(), OP_EQ, 0); /* We are still not OOM */
|
||||
@ -242,10 +230,6 @@ test_oom_streambuf(void *arg)
|
||||
|
||||
MOCK(circuit_mark_for_close_, circuit_mark_for_close_dummy_);
|
||||
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
/* Far too low for real life. */
|
||||
options->MaxMemInQueues = 81*packed_cell_mem_cost() + 4096 * 34;
|
||||
options->CellStatistics = 0;
|
||||
|
@ -60,11 +60,6 @@ test_relay_append_cell_to_circuit_queue(void *arg)
|
||||
|
||||
(void)arg;
|
||||
|
||||
/* We'll need the cell pool for append_cell_to_circuit_queue() to work */
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
init_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
/* Make fake channels to be nchan and pchan for the circuit */
|
||||
nchan = new_fake_channel();
|
||||
tt_assert(nchan);
|
||||
@ -119,9 +114,6 @@ test_relay_append_cell_to_circuit_queue(void *arg)
|
||||
tor_free(orcirc);
|
||||
free_fake_channel(nchan);
|
||||
free_fake_channel(pchan);
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
free_cell_pool();
|
||||
#endif /* ENABLE_MEMPOOLS */
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -4338,9 +4338,6 @@ struct testcase_t util_tests[] = {
|
||||
UTIL_LEGACY(pow2),
|
||||
UTIL_LEGACY(gzip),
|
||||
UTIL_LEGACY(datadir),
|
||||
#ifdef ENABLE_MEMPOOLS
|
||||
UTIL_LEGACY(mempool),
|
||||
#endif
|
||||
UTIL_LEGACY(memarea),
|
||||
UTIL_LEGACY(control_formats),
|
||||
UTIL_LEGACY(mmap),
|
||||
|
Loading…
Reference in New Issue
Block a user