aboutsummaryrefslogtreecommitdiff
path: root/src/or/buffers.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-07-27 18:33:37 +0000
committerNick Mathewson <nickm@torproject.org>2007-07-27 18:33:37 +0000
commitbc9a7be9432c779a4e47c8a58a33b5cfbc23e58e (patch)
treec2d1c59dabb1325804725e1f8e3931c7b94082d8 /src/or/buffers.c
parent65cdda20b30c29b1b2d53c1025dcb5856dbc3288 (diff)
downloadtor-bc9a7be9432c779a4e47c8a58a33b5cfbc23e58e.tar.gz
tor-bc9a7be9432c779a4e47c8a58a33b5cfbc23e58e.zip
r13939@catbus: nickm | 2007-07-27 14:33:22 -0400
When dumping memory usage, list bytes used in buffer memory free-lists. svn:r10947
Diffstat (limited to 'src/or/buffers.c')
-rw-r--r--src/or/buffers.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/or/buffers.c b/src/or/buffers.c
index 99271de7f9..1087a7a6fa 100644
--- a/src/or/buffers.c
+++ b/src/or/buffers.c
@@ -196,6 +196,25 @@ get_free_mem_list(size_t sz)
}
}
+/** Write the sizes of the buffer freelists at log level <b>severity</b> */
+void
+buf_dump_freelist_sizes(int severity)
+{
+ size_t sz;
+ log(severity, LD_MM, "======= Buffer freelists.");
+ for (sz = 4096; sz <= 16384; sz *= 2) {
+ uint64_t total_size;
+ free_mem_list_t *lst;
+ if (!IS_FREELIST_SIZE(sz))
+ continue;
+ lst = get_free_mem_list(sz);
+ total_size = ((uint64_t)sz)*lst->len;
+ log(severity, LD_MM,
+ U64_FORMAT" bytes in %d %d-byte buffers. (low-water: %d)",
+ U64_PRINTF_ARG(total_size), lst->len, (int)sz, lst->lowwater);
+ }
+}
+
/** Throw the memory from <b>buf</b> onto the appropriate freelist.
* Return true if we added the memory, 0 if the freelist was full. */
static int