Repository: trafficserver Updated Branches: refs/heads/master 682520c28 -> 9c707a89d
TS-4211: Make freelist_new cleaner so we can debug better. Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/9c707a89 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/9c707a89 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/9c707a89 Branch: refs/heads/master Commit: 9c707a89d58f0b635cc3c2070025ba08161beec0 Parents: 682520c Author: Phil Sorber <[email protected]> Authored: Sat Feb 13 22:54:26 2016 -0700 Committer: Phil Sorber <[email protected]> Committed: Fri Feb 19 15:54:39 2016 -0700 ---------------------------------------------------------------------- lib/ts/ink_queue.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/9c707a89/lib/ts/ink_queue.cc ---------------------------------------------------------------------- diff --git a/lib/ts/ink_queue.cc b/lib/ts/ink_queue.cc index 08dce16..e331a28 100644 --- a/lib/ts/ink_queue.cc +++ b/lib/ts/ink_queue.cc @@ -200,19 +200,20 @@ freelist_new(InkFreeList *f) if (TO_PTR(FREELIST_POINTER(item)) == NULL) { uint32_t i; void *newp = NULL; - size_t alloc_size = 0; + size_t alloc_size = f->chunk_size * f->type_size; + size_t alignment = 0; if (ats_hugepage_enabled()) { - alloc_size = INK_ALIGN(f->chunk_size * f->type_size, ats_hugepage_size()); + alignment = ats_hugepage_size(); newp = ats_alloc_hugepage(alloc_size); } if (newp == NULL) { - alloc_size = INK_ALIGN(f->chunk_size * f->type_size, ats_pagesize()); - newp = ats_memalign(ats_pagesize(), alloc_size); + alignment = ats_pagesize(); + newp = ats_memalign(alignment, INK_ALIGN(alloc_size, alignment)); } - ats_madvise((caddr_t)newp, alloc_size, f->advice); + ats_madvise((caddr_t)newp, INK_ALIGN(alloc_size, alignment), f->advice); SET_FREELIST_POINTER_VERSION(item, newp, 0); ink_atomic_increment((int *)&f->allocated, f->chunk_size);
