Loading src/or/buffers.c +3 −3 Original line number Diff line number Diff line Loading @@ -117,6 +117,9 @@ chunk_repack(chunk_t *chunk) chunk->data = &chunk->mem[0]; } /** Keep track of total size of allocated chunks for consistency asserts */ static size_t total_bytes_allocated_in_chunks = 0; #if defined(ENABLE_BUF_FREELISTS) || defined(RUNNING_DOXYGEN) /** A freelist of chunks. */ typedef struct chunk_freelist_t { Loading Loading @@ -148,9 +151,6 @@ static chunk_freelist_t freelists[] = { * could help with? */ static uint64_t n_freelist_miss = 0; /** DOCDOC */ static size_t total_bytes_allocated_in_chunks = 0; static void assert_freelist_ok(chunk_freelist_t *fl); /** Return the freelist to hold chunks of size <b>alloc</b>, or NULL if Loading src/test/test_buffers.c +11 −2 Original line number Diff line number Diff line Loading @@ -481,13 +481,22 @@ test_buffer_allocation_tracking(void *arg) fetch_from_buf(junk, 4096, buf1); /* drop a 1k chunk... */ tt_int_op(buf_allocation(buf1), ==, 3*4096); /* now 3 4k chunks */ #ifdef ENABLE_BUF_FREELISTS tt_int_op(buf_get_total_allocation(), ==, 16384); /* that chunk went onto the freelist. */ #else tt_int_op(buf_get_total_allocation(), ==, 12288); /* that chunk was really freed. */ #endif write_to_buf(junk, 4000, buf2); tt_int_op(buf_allocation(buf2), ==, 4096); /* another 4k chunk. */ tt_int_op(buf_get_total_allocation(), ==, 16384); /* that chunk came from the freelist. */ /* * If we're using freelists, size stays at 16384 because we just pulled a * chunk from the freelist. If we aren't, we bounce back up to 16384 by * allocating a new chunk. */ tt_int_op(buf_get_total_allocation(), ==, 16384); write_to_buf(junk, 4000, buf2); tt_int_op(buf_allocation(buf2), ==, 8192); /* another 4k chunk. */ tt_int_op(buf_get_total_allocation(), ==, 5*4096); /* that chunk was new. */ Loading Loading
src/or/buffers.c +3 −3 Original line number Diff line number Diff line Loading @@ -117,6 +117,9 @@ chunk_repack(chunk_t *chunk) chunk->data = &chunk->mem[0]; } /** Keep track of total size of allocated chunks for consistency asserts */ static size_t total_bytes_allocated_in_chunks = 0; #if defined(ENABLE_BUF_FREELISTS) || defined(RUNNING_DOXYGEN) /** A freelist of chunks. */ typedef struct chunk_freelist_t { Loading Loading @@ -148,9 +151,6 @@ static chunk_freelist_t freelists[] = { * could help with? */ static uint64_t n_freelist_miss = 0; /** DOCDOC */ static size_t total_bytes_allocated_in_chunks = 0; static void assert_freelist_ok(chunk_freelist_t *fl); /** Return the freelist to hold chunks of size <b>alloc</b>, or NULL if Loading
src/test/test_buffers.c +11 −2 Original line number Diff line number Diff line Loading @@ -481,13 +481,22 @@ test_buffer_allocation_tracking(void *arg) fetch_from_buf(junk, 4096, buf1); /* drop a 1k chunk... */ tt_int_op(buf_allocation(buf1), ==, 3*4096); /* now 3 4k chunks */ #ifdef ENABLE_BUF_FREELISTS tt_int_op(buf_get_total_allocation(), ==, 16384); /* that chunk went onto the freelist. */ #else tt_int_op(buf_get_total_allocation(), ==, 12288); /* that chunk was really freed. */ #endif write_to_buf(junk, 4000, buf2); tt_int_op(buf_allocation(buf2), ==, 4096); /* another 4k chunk. */ tt_int_op(buf_get_total_allocation(), ==, 16384); /* that chunk came from the freelist. */ /* * If we're using freelists, size stays at 16384 because we just pulled a * chunk from the freelist. If we aren't, we bounce back up to 16384 by * allocating a new chunk. */ tt_int_op(buf_get_total_allocation(), ==, 16384); write_to_buf(junk, 4000, buf2); tt_int_op(buf_allocation(buf2), ==, 8192); /* another 4k chunk. */ tt_int_op(buf_get_total_allocation(), ==, 5*4096); /* that chunk was new. */ Loading