Repository: trafficserver Updated Branches: refs/heads/master baf2d759c -> c8d165148
TS-4197: Add memory debugging This closes #470 Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/c8d16514 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/c8d16514 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/c8d16514 Branch: refs/heads/master Commit: c8d16514878885e87bf8d45b31742e56921a53ed Parents: baf2d75 Author: Phil Sorber <[email protected]> Authored: Thu Feb 11 21:58:29 2016 -0700 Committer: Phil Sorber <[email protected]> Committed: Thu Feb 11 22:20:19 2016 -0700 ---------------------------------------------------------------------- lib/ts/hugepages.cc | 9 +++++---- lib/ts/ink_queue.cc | 12 +++++++++--- 2 files changed, 14 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c8d16514/lib/ts/hugepages.cc ---------------------------------------------------------------------- diff --git a/lib/ts/hugepages.cc b/lib/ts/hugepages.cc index 7763da0..76f74fd 100644 --- a/lib/ts/hugepages.cc +++ b/lib/ts/hugepages.cc @@ -68,14 +68,14 @@ ats_hugepage_init(int enabled) hugepage_size = 0; if (!enabled) { - Debug(DEBUG_TAG, "hugepages not enabled"); + Debug(DEBUG_TAG "_init", "hugepages not enabled"); return; } fp = fopen(MEMINFO_PATH, "r"); if (fp == NULL) { - Debug(DEBUG_TAG, "Cannot open file %s", MEMINFO_PATH); + Debug(DEBUG_TAG "_init", "Cannot open file %s", MEMINFO_PATH); return; } @@ -100,9 +100,9 @@ ats_hugepage_init(int enabled) hugepage_enabled = true; } - Debug(DEBUG_TAG, "Hugepage size = %d", hugepage_size); + Debug(DEBUG_TAG "_init", "Hugepage size = %d", hugepage_size); #else - Debug(DEBUG_TAG, "MAP_HUGETLB not defined"); + Debug(DEBUG_TAG "_init", "MAP_HUGETLB not defined"); #endif } @@ -122,6 +122,7 @@ ats_alloc_hugepage(size_t s) return NULL; } + Debug(DEBUG_TAG, "Request/Allocation (%zu/%zu) {%p}", s, size, mem); return mem; #else (void)s; http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c8d16514/lib/ts/ink_queue.cc ---------------------------------------------------------------------- diff --git a/lib/ts/ink_queue.cc b/lib/ts/ink_queue.cc index b1abb45..fb13d61 100644 --- a/lib/ts/ink_queue.cc +++ b/lib/ts/ink_queue.cc @@ -50,6 +50,9 @@ #include "ts/ink_assert.h" #include "ts/ink_align.h" #include "ts/hugepages.h" +#include "ts/Diags.h" + +#define DEBUG_TAG "freelist" inkcoreapi volatile int64_t fastalloc_mem_in_use = 0; inkcoreapi volatile int64_t fastalloc_mem_total = 0; @@ -135,16 +138,19 @@ ink_freelist_init(InkFreeList **fl, const char *name, uint32_t type_size, uint32 ink_assert(!(alignment & (alignment - 1))); // It is never useful to have alignment requirement looser than a page size // so clip it. This makes the item alignment checks in the actual allocator simpler. - if (alignment > ats_pagesize()) - alignment = ats_pagesize(); f->alignment = alignment; + if (f->alignment > ats_pagesize()) + f->alignment = ats_pagesize(); + Debug(DEBUG_TAG "_init", "<%s> Alignment request/actual (%" PRIu32 "/%" PRIu32 ")", name, alignment, f->alignment); // Make sure we align *all* the objects in the allocation, not just the first one - f->type_size = INK_ALIGN(type_size, alignment); + f->type_size = INK_ALIGN(type_size, f->alignment); + Debug(DEBUG_TAG "_init", "<%s> Type Size request/actual (%" PRIu32 "/%" PRIu32 ")", name, type_size, f->type_size); if (ats_hugepage_enabled()) { f->chunk_size = INK_ALIGN(chunk_size * f->type_size, ats_hugepage_size()) / f->type_size; } else { f->chunk_size = INK_ALIGN(chunk_size * f->type_size, ats_pagesize()) / f->type_size; } + Debug(DEBUG_TAG "_init", "<%s> Chunk Size request/actual (%" PRIu32 "/%" PRIu32 ")", name, chunk_size, f->chunk_size); SET_FREELIST_POINTER_VERSION(f->head, FROM_PTR(0), 0); *fl = f;
