git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v1] mem_pool: add GIT_TRACE_MEMPOOL support

From
Ben Peart <peartben@gmail.com>
Date
Nov 27, 2018, 19:53 UTC
Message-ID
<20181127195337.3264-1-peartben@gmail.com>
From: Ben Peart <benpeart@microsoft.com>

Add tracing around initializing and discarding mempools. In discard report on the amount of memory unused in the current block to help tune setting the initial_size.

Signed-off-by: Ben Peart <benpeart@microsoft.com>
---
Notes:
    Base Ref: * git-trace-mempool
    Web-Diff: https://github.com/benpeart/git/commit/9ac84bbca2
    Checkout: git fetch https://github.com/benpeart/git git-trace-mempool-v1 && git checkout 9ac84bbca2
 mem-pool.c | 5 +++++
 1 file changed, 5 insertions(+)
diff --git a/mem-pool.c b/mem-pool.c
index a2841a4a9a..065389aaec 100644
--- a/mem-pool.c
+++ b/mem-pool.c
@@ -5,6 +5,7 @@
 #include "cache.h"
 #include "mem-pool.h"
 
+static struct trace_key trace_mem_pool = TRACE_KEY_INIT(MEMPOOL);
 #define BLOCK_GROWTH_SIZE 1024*1024 - sizeof(struct mp_block);
 
 /*
@@ -48,12 +49,16 @@ void mem_pool_init(struct mem_pool **mem_pool, size_t initial_size)
 		mem_pool_alloc_block(pool, initial_size, NULL);
 
 	*mem_pool = pool;
+	trace_printf_key(&trace_mem_pool, "mem_pool (%p): init (%"PRIuMAX") initial size\n",
+		pool, (uintmax_t)initial_size);
 }
 
 void mem_pool_discard(struct mem_pool *mem_pool, int invalidate_memory)
 {
 	struct mp_block *block, *block_to_free;
 
+	trace_printf_key(&trace_mem_pool, "mem_pool (%p): discard (%"PRIuMAX") unused\n",
+		mem_pool, (uintmax_t)(mem_pool->mp_block->end - mem_pool->mp_block->next_free));
 	block = mem_pool->mp_block;
 	while (block)
 	{

base-commit: bb75be6cb916297f271c846f2f9caa3daaaec718
-- 
2.18.0.windows.1
Next: Johannes Schindelin
Message 1 of 4 in “mem_pool: add GIT_TRACE_MEMPOOL support”
  1. mem_pool: add GIT_TRACE_MEMPOOL supportBen Peart, Nov 27, 2018
  2. Johannes SchindelinNov 28, 2018
  3. Ben PeartNov 29, 2018
  4. Johannes SchindelinNov 29, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.