Browse Source

Add tags to rspamd_mempool.

tags/1.0.0
Vsevolod Stakhov 8 years ago
parent
commit
b05c7c9edd

+ 1
- 1
src/controller.c View File

@@ -1811,7 +1811,7 @@ rspamd_controller_accept_socket (gint fd, short what, void *arg)
}

nsession = g_slice_alloc0 (sizeof (struct rspamd_controller_session));
nsession->pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
nsession->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
nsession->ctx = ctx;

nsession->from_addr = addr;

+ 1
- 1
src/libserver/buffer.c View File

@@ -603,7 +603,7 @@ rspamd_create_dispatcher (struct event_base *base,

new = g_slice_alloc0 (sizeof (rspamd_io_dispatcher_t));

new->pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
new->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
if (tv != NULL) {
new->tv = rspamd_mempool_alloc (new->pool, sizeof (struct timeval));
memcpy (new->tv, tv, sizeof (struct timeval));

+ 1
- 2
src/libserver/cfg_utils.c View File

@@ -942,8 +942,7 @@ rspamd_init_filters (struct rspamd_config *cfg, bool reconfig)
void
rspamd_init_cfg (struct rspamd_config *cfg, gboolean init_lua)
{
cfg->cfg_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
rspamd_config_defaults (cfg);

if (init_lua) {

+ 1
- 1
src/libserver/symbols_cache.c View File

@@ -594,7 +594,7 @@ rspamd_symbols_cache_new (void)

cache = g_slice_alloc0 (sizeof (struct symbols_cache));
cache->static_pool =
rspamd_mempool_new (rspamd_mempool_suggest_size ());
rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
cache->items_by_symbol = g_hash_table_new (rspamd_str_hash,
rspamd_str_equal);
cache->items_by_order = g_ptr_array_new ();

+ 1
- 1
src/libserver/task.c View File

@@ -59,7 +59,7 @@ rspamd_task_new (struct rspamd_worker *worker)
new_task->time_real = rspamd_get_ticks ();
new_task->time_virtual = rspamd_get_virtual_ticks ();

new_task->task_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
new_task->task_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

new_task->results = g_hash_table_new (rspamd_str_hash, rspamd_str_equal);
rspamd_mempool_add_destructor (new_task->task_pool,

+ 1
- 1
src/libstat/backends/mmaped_file.c View File

@@ -848,7 +848,7 @@ rspamd_mmaped_file_init (struct rspamd_stat_ctx *ctx, struct rspamd_config *cfg)
gsize size;

new = rspamd_mempool_alloc0 (cfg->cfg_pool, sizeof (rspamd_mmaped_file_ctx));
new->pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
new->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
new->lock = rspamd_mempool_get_mutex (new->pool);
new->mlock_ok = cfg->mlock_statfile_pool;
new->files = g_hash_table_new (g_direct_hash, g_direct_equal);

+ 1
- 1
src/libutil/logger.c View File

@@ -294,7 +294,7 @@ rspamd_set_logger (struct rspamd_config *cfg,
rspamd->logger = g_malloc (sizeof (rspamd_logger_t));
memset (rspamd->logger, 0, sizeof (rspamd_logger_t));
/* Small pool for interlocking */
rspamd->logger->pool = rspamd_mempool_new (512);
rspamd->logger->pool = rspamd_mempool_new (512, NULL);
rspamd->logger->mtx = rspamd_mempool_get_mutex (rspamd->logger->pool);
}


+ 2
- 2
src/libutil/map.c View File

@@ -471,7 +471,7 @@ rspamd_map_add (struct rspamd_config *cfg,
}
/* Constant pool */
if (cfg->map_pool == NULL) {
cfg->map_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
cfg->map_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
}
new_map = rspamd_mempool_alloc0 (cfg->map_pool, sizeof (struct rspamd_map));
new_map->read_callback = read_callback;
@@ -588,7 +588,7 @@ rspamd_map_add (struct rspamd_config *cfg,
new_map->map_data = hdata;
}
/* Temp pool */
new_map->pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
new_map->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

cfg->maps = g_list_prepend (cfg->maps, new_map);


+ 21
- 1
src/libutil/mem_pool.c View File

@@ -29,6 +29,7 @@
#include "util.h"
#include "main.h"
#include "utlist.h"
#include "ottery.h"

/* Sleep time for spin lock in nanoseconds */
#define MUTEX_SLEEP_TIME 10000000L
@@ -152,10 +153,13 @@ pool_chain_new_shared (gsize size)
* @return new memory pool object
*/
rspamd_mempool_t *
rspamd_mempool_new (gsize size)
rspamd_mempool_new (gsize size, const gchar *tag)
{
rspamd_mempool_t *new;
gpointer map;
unsigned char uidbuf[10];
const gchar hexdigits[] = "0123456789abcdef";
unsigned i;

g_return_val_if_fail (size > 0, NULL);
/* Allocate statistic structure if it is not allocated before */
@@ -215,6 +219,22 @@ rspamd_mempool_new (gsize size)
/* Set it upon first call of set variable */
new->variables = NULL;
new->elt_len = size;

if (tag) {
rspamd_strlcpy (new->tag.tagname, tag, sizeof (new->tag.tagname));
}
else {
new->tag.tagname[0] = '\0';
}

/* Generate new uid */
ottery_rand_bytes (uidbuf, sizeof (uidbuf));
for (i = 0; i < G_N_ELEMENTS (uidbuf); i ++) {
new->tag.uid[i * 2] = hexdigits[(uidbuf[i] >> 4) & 0xf];
new->tag.uid[i * 2 + 2] = hexdigits[uidbuf[i] & 0xf];
}
new->tag.uid[19] = '\0';

mem_pool_stat->pools_allocated++;

return new;

+ 10
- 1
src/libutil/mem_pool.h View File

@@ -81,6 +81,14 @@ struct _pool_destructors {
struct _pool_destructors *prev; /**< chain link */
};

/**
* Tag to use for logging purposes
*/
struct rspamd_mempool_tag {
gchar tagname[20]; /**< readable name */
gchar uid[20]; /**< unique id */
};

/**
* Memory pool type
*/
@@ -92,6 +100,7 @@ typedef struct memory_pool_s {
struct _pool_destructors *destructors; /**< destructors chain */
GHashTable *variables; /**< private memory pool variables */
gsize elt_len; /**< size of an element */
struct rspamd_mempool_tag tag; /**< memory pool tag */
} rspamd_mempool_t;

/**
@@ -114,7 +123,7 @@ typedef struct memory_pool_stat_s {
* @param size size of pool's page
* @return new memory pool object
*/
rspamd_mempool_t * rspamd_mempool_new (gsize size);
rspamd_mempool_t *rspamd_mempool_new (gsize size, const gchar *tag);

/**
* Get memory from pool

+ 1
- 1
src/libutil/radix.c View File

@@ -527,7 +527,7 @@ radix_create_compressed (void)
return NULL;
}

tree->pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
tree->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
tree->size = 0;
tree->root = NULL;


+ 1
- 2
src/lua/lua_mempool.c View File

@@ -140,8 +140,7 @@ rspamd_lua_check_mempool (lua_State * L, gint pos)
static int
lua_mempool_create (lua_State *L)
{
struct memory_pool_s *mempool = rspamd_mempool_new (
rspamd_mempool_suggest_size ()), **pmempool;
struct memory_pool_s *mempool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL), **pmempool;

if (mempool) {
pmempool = lua_newuserdata (L, sizeof (struct memory_pool_s *));

+ 1
- 1
src/lua/lua_regexp.c View File

@@ -665,5 +665,5 @@ luaopen_regexp (lua_State * L)
luaL_register (L, NULL, regexplib_m);
rspamd_lua_add_preload (L, "rspamd_regexp", lua_load_regexp);

regexp_static_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
regexp_static_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
}

+ 1
- 1
src/lua/lua_util.c View File

@@ -505,7 +505,7 @@ lua_util_parse_html (lua_State *L)
}

if (start != NULL) {
pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
hc = rspamd_mempool_alloc0 (pool, sizeof (*hc));
in = g_byte_array_sized_new (len);
g_byte_array_append (in, start, len);

+ 1
- 2
src/main.c View File

@@ -1029,8 +1029,7 @@ do_encrypt_password (void)
static void
rspamd_init_main (struct rspamd_main *rspamd)
{
rspamd->server_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
rspamd->server_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
rspamd_main->stat = rspamd_mempool_alloc0_shared (rspamd_main->server_pool,
sizeof (struct rspamd_stat));
/* Create rolling history */

+ 2
- 3
src/plugins/chartable.c View File

@@ -67,8 +67,7 @@ chartable_module_init (struct rspamd_config *cfg, struct module_ctx **ctx)
{
chartable_module_ctx = g_malloc (sizeof (struct chartable_ctx));

chartable_module_ctx->chartable_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
chartable_module_ctx->chartable_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

*ctx = (struct module_ctx *)chartable_module_ctx;

@@ -119,7 +118,7 @@ gint
chartable_module_reconfig (struct rspamd_config *cfg)
{
rspamd_mempool_delete (chartable_module_ctx->chartable_pool);
chartable_module_ctx->chartable_pool = rspamd_mempool_new (1024);
chartable_module_ctx->chartable_pool = rspamd_mempool_new (1024, NULL);

return chartable_module_config (cfg);
}

+ 2
- 4
src/plugins/dkim_check.c View File

@@ -100,8 +100,7 @@ dkim_module_init (struct rspamd_config *cfg, struct module_ctx **ctx)
{
dkim_module_ctx = g_malloc0 (sizeof (struct dkim_ctx));

dkim_module_ctx->dkim_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
dkim_module_ctx->dkim_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

*ctx = (struct module_ctx *)dkim_module_ctx;

@@ -278,8 +277,7 @@ dkim_module_reconfig (struct rspamd_config *cfg)

memset (dkim_module_ctx, 0, sizeof (*dkim_module_ctx));
dkim_module_ctx->ctx = saved_ctx;
dkim_module_ctx->dkim_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
dkim_module_ctx->dkim_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

return dkim_module_config (cfg);
}

+ 2
- 4
src/plugins/fuzzy_check.c View File

@@ -408,8 +408,7 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx)
{
fuzzy_module_ctx = g_malloc0 (sizeof (struct fuzzy_ctx));

fuzzy_module_ctx->fuzzy_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
fuzzy_module_ctx->fuzzy_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
fuzzy_module_ctx->cfg = cfg;

*ctx = (struct module_ctx *)fuzzy_module_ctx;
@@ -519,8 +518,7 @@ fuzzy_check_module_reconfig (struct rspamd_config *cfg)
rspamd_mempool_delete (fuzzy_module_ctx->fuzzy_pool);
memset (fuzzy_module_ctx, 0, sizeof (*fuzzy_module_ctx));
fuzzy_module_ctx->ctx = saved_ctx;
fuzzy_module_ctx->fuzzy_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
fuzzy_module_ctx->fuzzy_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
fuzzy_module_ctx->cfg = cfg;

return fuzzy_check_module_config (cfg);

+ 2
- 4
src/plugins/regexp.c View File

@@ -98,8 +98,7 @@ regexp_module_init (struct rspamd_config *cfg, struct module_ctx **ctx)
{
regexp_module_ctx = g_malloc (sizeof (struct regexp_ctx));

regexp_module_ctx->regexp_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
regexp_module_ctx->regexp_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

*ctx = (struct module_ctx *)regexp_module_ctx;

@@ -184,8 +183,7 @@ regexp_module_reconfig (struct rspamd_config *cfg)
rspamd_mempool_delete (regexp_module_ctx->regexp_pool);
memset (regexp_module_ctx, 0, sizeof (*regexp_module_ctx));
regexp_module_ctx->ctx = saved_ctx;
regexp_module_ctx->regexp_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
regexp_module_ctx->regexp_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

return regexp_module_config (cfg);
}

+ 2
- 4
src/plugins/spf.c View File

@@ -92,8 +92,7 @@ spf_module_init (struct rspamd_config *cfg, struct module_ctx **ctx)
{
spf_module_ctx = g_malloc (sizeof (struct spf_ctx));

spf_module_ctx->spf_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
spf_module_ctx->spf_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

*ctx = (struct module_ctx *)spf_module_ctx;

@@ -208,8 +207,7 @@ spf_module_reconfig (struct rspamd_config *cfg)
radix_destroy_compressed (spf_module_ctx->whitelist_ip);
memset (spf_module_ctx, 0, sizeof (*spf_module_ctx));
spf_module_ctx->ctx = saved_ctx;
spf_module_ctx->spf_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
spf_module_ctx->spf_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

return spf_module_config (cfg);
}

+ 2
- 4
src/plugins/surbl.c View File

@@ -276,8 +276,7 @@ surbl_module_init (struct rspamd_config *cfg, struct module_ctx **ctx)

surbl_module_ctx->use_redirector = 0;
surbl_module_ctx->suffixes = NULL;
surbl_module_ctx->surbl_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
surbl_module_ctx->surbl_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

surbl_module_ctx->tld2_file = NULL;
surbl_module_ctx->whitelist_file = NULL;
@@ -622,8 +621,7 @@ surbl_module_reconfig (struct rspamd_config *cfg)
/* Reinit module */
surbl_module_ctx->use_redirector = 0;
surbl_module_ctx->suffixes = NULL;
surbl_module_ctx->surbl_pool = rspamd_mempool_new (
rspamd_mempool_suggest_size ());
surbl_module_ctx->surbl_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

surbl_module_ctx->tld2_file = NULL;
surbl_module_ctx->whitelist_file = NULL;

+ 2
- 2
src/smtp_proxy.c View File

@@ -928,7 +928,7 @@ accept_socket (gint fd, short what, void *arg)

ctx = worker->ctx;
session = g_slice_alloc0 (sizeof (struct smtp_proxy_session));
session->pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
session->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);


session->sock = nfd;
@@ -979,7 +979,7 @@ init_smtp_proxy (struct rspamd_config *cfg)
type = g_quark_try_string ("smtp_proxy");

ctx = g_malloc0 (sizeof (struct smtp_worker_ctx));
ctx->pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
ctx->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

/* Set default values */
ctx->smtp_timeout_raw = 300000;

+ 2
- 2
test/rspamd_dns_test.c View File

@@ -74,11 +74,11 @@ rspamd_dns_test_func ()

cfg = (struct rspamd_config *)g_malloc (sizeof (struct rspamd_config));
bzero (cfg, sizeof (struct rspamd_config));
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
cfg->dns_retransmits = 2;
cfg->dns_timeout = 0.5;

pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);

s = rspamd_session_create (pool, session_fin, NULL, NULL, NULL);


+ 1
- 1
test/rspamd_http_test.c View File

@@ -203,7 +203,7 @@ void
rspamd_http_test_func (void)
{
struct event_base *ev_base = event_init ();
rspamd_mempool_t *pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
rspamd_mempool_t *pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
gpointer serv_key, client_key, peer_key;
struct rspamd_keypair_cache *c;
rspamd_mempool_mutex_t *mtx;

+ 1
- 1
test/rspamd_mem_pool_test.c View File

@@ -14,7 +14,7 @@ rspamd_mem_pool_test_func ()
pid_t pid;
int ret;

pool = rspamd_mempool_new (sizeof (TEST_BUF));
pool = rspamd_mempool_new (sizeof (TEST_BUF), NULL);
tmp = rspamd_mempool_alloc (pool, sizeof (TEST_BUF));
tmp2 = rspamd_mempool_alloc (pool, sizeof (TEST_BUF) * 2);
tmp3 = rspamd_mempool_alloc_shared (pool, sizeof (TEST_BUF));

+ 2
- 2
test/rspamd_test_suite.c View File

@@ -17,12 +17,12 @@ main (int argc, char **argv)

rspamd_main = (struct rspamd_main *)g_malloc (sizeof (struct rspamd_main));
memset (rspamd_main, 0, sizeof (struct rspamd_main));
rspamd_main->server_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
rspamd_main->server_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
rspamd_main->cfg = (struct rspamd_config *)g_malloc (sizeof (struct rspamd_config));
cfg = rspamd_main->cfg;
memset (cfg, 0, sizeof (struct rspamd_config));
rspamd_init_cfg (cfg, FALSE);
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
cfg->log_type = RSPAMD_LOG_CONSOLE;
cfg->log_level = G_LOG_LEVEL_INFO;


+ 1
- 1
test/rspamd_upstream_test.c View File

@@ -76,7 +76,7 @@ rspamd_upstream_test_func (void)

cfg = (struct rspamd_config *)g_malloc (sizeof (struct rspamd_config));
bzero (cfg, sizeof (struct rspamd_config));
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), NULL);
cfg->dns_retransmits = 2;
cfg->dns_timeout = 0.5;
cfg->upstream_max_errors = 1;

Loading…
Cancel
Save