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);

Reply via email to