You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2010/11/22 19:38:25 UTC

svn commit: r1037826 - in /trafficserver/traffic/trunk: contrib/perl/AdminClient/lib/Apache/TS/ libinktomi++/ proxy/ proxy/config/ proxy/mgmt2/

Author: zwoop
Date: Mon Nov 22 18:38:25 2010
New Revision: 1037826

URL: http://svn.apache.org/viewvc?rev=1037826&view=rev
Log:
TS-549 Remove proxy.config.system.memalign_heap

Modified:
    trafficserver/traffic/trunk/contrib/perl/AdminClient/lib/Apache/TS/AdminClient.pm
    trafficserver/traffic/trunk/libinktomi++/Allocator.h
    trafficserver/traffic/trunk/libinktomi++/ink_memory.cc
    trafficserver/traffic/trunk/libinktomi++/ink_memory.h
    trafficserver/traffic/trunk/proxy/Initialize.cc
    trafficserver/traffic/trunk/proxy/Initialize.h
    trafficserver/traffic/trunk/proxy/Main.cc
    trafficserver/traffic/trunk/proxy/config/records.config.in
    trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc

Modified: trafficserver/traffic/trunk/contrib/perl/AdminClient/lib/Apache/TS/AdminClient.pm
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/contrib/perl/AdminClient/lib/Apache/TS/AdminClient.pm?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/contrib/perl/AdminClient/lib/Apache/TS/AdminClient.pm (original)
+++ trafficserver/traffic/trunk/contrib/perl/AdminClient/lib/Apache/TS/AdminClient.pm Mon Nov 22 18:38:25 2010
@@ -670,7 +670,6 @@ The Apache Traffic Server Administration
  proxy.config.stat_systemV2.max_stats_allowed
  proxy.config.stat_systemV2.num_stats_estimate
  proxy.config.syslog_facility
- proxy.config.system.memalign_heap
  proxy.config.system.mmap_max
  proxy.config.temp_dir
  proxy.config.thread.default.stacksize

Modified: trafficserver/traffic/trunk/libinktomi++/Allocator.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/libinktomi%2B%2B/Allocator.h?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/Allocator.h (original)
+++ trafficserver/traffic/trunk/libinktomi++/Allocator.h Mon Nov 22 18:38:25 2010
@@ -247,10 +247,8 @@ template<class C> inline
 }
 
 template<class C> inline
-  SparceClassAllocator<C>::SparceClassAllocator(const char *name, unsigned int chunk_size, unsigned int alignment,
-                                                   void (*instantiate_func) (C * proto, C * instance)):
-  ClassAllocator <
-C > (name, chunk_size, alignment)
+SparceClassAllocator<C>::SparceClassAllocator(const char *name, unsigned int chunk_size, unsigned int alignment,
+                                              void (*instantiate_func) (C * proto, C * instance)) : ClassAllocator <C> (name, chunk_size, alignment)
 {
   instantiate = instantiate_func;       // NULL by default
 }

Modified: trafficserver/traffic/trunk/libinktomi++/ink_memory.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_memory.cc?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/ink_memory.cc (original)
+++ trafficserver/traffic/trunk/libinktomi++/ink_memory.cc Mon Nov 22 18:38:25 2010
@@ -46,157 +46,6 @@
 #endif
 
 
-
-class MAMemChunk
-{
-public:
-  MAMemChunk * next;
-  void *ptr;
-};
-
-class MAHeap
-{
-private:
-  pthread_mutex_t mutex;
-  char *heap;
-  char *heap_end;
-  int size;
-  int chunk_size;
-  int total_chunks;
-  MAMemChunk *chunk_list_free;
-  MAMemChunk *chunk_list_used;
-public:
-    MAHeap(int chunk_size = 0, int total_chunks = 0);
-   ~MAHeap();
-  bool Init(int chunk_size = 0, int total_chunks = 0);
-  void *Get(void);
-  bool Free(void *ptr);
-};
-
-bool
-MAHeap::Init(int _chunk_size, int _total_chunks)
-{
-  bool retcode = true;
-  chunk_size = _chunk_size;
-  total_chunks = _total_chunks;
-  size = chunk_size * total_chunks;
-
-  if (size > 0) {
-    heap = (char *)ink_memalign(8192, size);
-    if (heap != NULL) {
-      for (int i = 0; i < total_chunks; i++) {
-        MAMemChunk *mc = new MAMemChunk();
-        mc->next = chunk_list_free;
-        chunk_list_free = mc;
-        mc->ptr = (void *) &heap[chunk_size * i];
-      }
-      heap_end = heap + size;
-    } else
-      retcode = false;
-  }
-  return retcode;
-}
-
-MAHeap::MAHeap(int _chunk_size, int _total_chunks)
-{
-  chunk_list_free = (chunk_list_used = 0);
-  heap_end = (heap = NULL);
-  pthread_mutex_init(&mutex, NULL);
-  Init(_chunk_size, _total_chunks);
-}
-
-MAHeap::~MAHeap()
-{
-  pthread_mutex_lock(&mutex);
-  // free the heap
-  if (heap != NULL) {
-    free(heap);
-  }
-  // delete the free list
-  MAMemChunk *head = chunk_list_free;
-  MAMemChunk *next = NULL;
-  while (head != NULL) {
-    next = head->next;
-    delete head;
-    head = next;
-  }
-  // delete the used list
-  head = chunk_list_used;
-  next = NULL;
-  while (head != NULL) {
-    next = head->next;
-    delete head;
-    head = next;
-  }
-  pthread_mutex_unlock(&mutex);
-}
-
-void *
-MAHeap::Get(void)
-{
-  MAMemChunk *mc;
-  void *ptr = 0;
-  if (heap) {
-    pthread_mutex_lock(&mutex);
-    if ((mc = chunk_list_free) != 0) {
-      chunk_list_free = mc->next;
-      mc->next = chunk_list_used;
-      chunk_list_used = mc;
-      ptr = mc->ptr;
-    }
-    pthread_mutex_unlock(&mutex);
-  }
-  return ptr;
-}
-
-// I know that it is not optimal but we are not going to free aligned memory at all
-// I wrote it - just in case ...
-bool
-MAHeap::Free(void *ptr)
-{
-  bool retcode = false;
-  if (ptr && heap && ptr >= heap && ptr < heap_end) {
-    MAMemChunk *mc, **mcc;
-    retcode = true;
-    pthread_mutex_lock(&mutex);
-    for (mcc = &chunk_list_used; (mc = *mcc) != 0; mcc = &(mc->next)) {
-      if (mc->ptr == ptr) {
-        *mcc = mc->next;
-        mc->next = chunk_list_free;
-        chunk_list_free = mc;
-        break;
-      }
-    }
-    pthread_mutex_unlock(&mutex);
-  }
-  return retcode;
-}
-
-static MAHeap *maheap_1m = new MAHeap();
-static MAHeap *maheap_512k = new MAHeap();
-static MAHeap *maheap_256k = new MAHeap();
-
-bool
-ink_memalign_heap_init(long long ram_cache_size)
-{
-  bool retcode = true;
-  int _total_chunks = (int) (ram_cache_size / (1024 * 1024));
-
-  if (_total_chunks > 1024)
-    _total_chunks = 1024;
-
-  if (likely(maheap_1m)) {
-    retcode = maheap_1m->Init(1024 * 1024, _total_chunks) ? retcode : false;
-  }
-  if (likely(maheap_512k)) {
-    retcode = maheap_512k->Init(512 * 1024, _total_chunks) ? retcode : false;
-  }
-  if (likely(maheap_256k)) {
-    retcode = maheap_256k->Init(256 * 1024, _total_chunks) ? retcode : false;
-  }
-  return retcode;
-}
-
 void *
 ink_malloc(size_t size)
 {
@@ -247,16 +96,11 @@ void
 ink_memalign_free(void *ptr)
 {
   if (likely(ptr)) {
-    if (maheap_1m && maheap_1m->Free(ptr))
-      return;
-    if (maheap_512k && maheap_512k->Free(ptr))
-      return;
-    if (maheap_256k && maheap_256k->Free(ptr))
-      return;
     ink_free(ptr);
   }
 }
 
+
 void *
 ink_memalign(size_t alignment, size_t size)
 {
@@ -268,17 +112,6 @@ ink_memalign(size_t alignment, size_t si
   if (alignment <= 8)
     return ink_malloc(size);
 
-  if (size == (1024 * 1024)) {
-    if (maheap_1m && (ptr = maheap_1m->Get()) != 0)
-      return ptr;
-  } else if (size == (1024 * 512)) {
-    if (maheap_512k && (ptr = maheap_512k->Get()) != 0)
-      return ptr;
-  } else if (size == (1024 * 256)) {
-    if (maheap_256k && (ptr = maheap_256k->Get()) != 0)
-      return ptr;
-  }
-
   int retcode = posix_memalign(&ptr, alignment, size);
   if (unlikely(retcode)) {
     if (retcode == EINVAL) {
@@ -333,8 +166,6 @@ ink_memalign(size_t alignment, size_t si
   return NULL;
 }                               /* End ink_memalign */
 
-
-
 void
 ink_free(void *ptr)
 {
@@ -354,102 +185,6 @@ ink_duplicate_string(char *ptr)
   return (ink_string_duplicate(ptr));
 }                               /* End ink_duplicate_string */
 
-
-void
-ink_memzero(void *src_arg, int nbytes)
-{
-  ink_assert(!"don't use this slow code!");
-
-  char *src = (char *) src_arg;
-
-  ink_assert(nbytes > 0);
-
-  if (nbytes <= 20) {
-    switch (nbytes) {
-    case 1:
-      src[0] = '\0';
-      break;
-    case 2:
-      src[0] = src[1] = '\0';
-      break;
-    case 3:
-      src[0] = src[1] = src[2] = '\0';
-      break;
-    case 4:
-      src[0] = src[1] = src[2] = src[3] = '\0';
-      break;
-    case 5:
-      src[0] = src[1] = src[2] = src[3] = src[4] = '\0';
-      break;
-    case 6:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = '\0';
-      break;
-    case 7:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = '\0';
-      break;
-    case 8:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = '\0';
-      break;
-    case 9:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = '\0';
-      break;
-    case 10:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] = '\0';
-      break;
-    case 11:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] = src[10] = '\0';
-      break;
-    case 12:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = '\0';
-      break;
-    case 13:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = '\0';
-      break;
-    case 14:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = src[13] = '\0';
-      break;
-    case 15:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = src[13] = src[14] = '\0';
-      break;
-    case 16:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = '\0';
-      break;
-    case 17:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = '\0';
-      break;
-    case 18:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = src[17] = '\0';
-      break;
-    case 19:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = src[17] = src[18] = '\0';
-      break;
-    case 20:
-      src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
-        src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = src[17] = src[18] = src[19] = '\0';
-      break;
-    default:
-      break;
-    }
-  } else if (nbytes <= 1000) {
-    int i;
-    for (i = 0; i < nbytes; i++) {
-      src[i] = '\0';
-    }
-  } else {
-    memset(src, '\0', nbytes);
-  }
-  return;
-}
-
-
 void *
 ink_memcpy(void *s1, const void *s2, int n)
 {

Modified: trafficserver/traffic/trunk/libinktomi++/ink_memory.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_memory.h?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/ink_memory.h (original)
+++ trafficserver/traffic/trunk/libinktomi++/ink_memory.h Mon Nov 22 18:38:25 2010
@@ -50,7 +50,6 @@ extern "C"
 #define ink_type_malloc_n(n,type)   (type *)ink_malloc((n) * sizeof(type));
 #define ink_type_calloc(n,type)     (type *)ink_calloc((n),sizeof(type));
 
-  bool ink_memalign_heap_init(long long ram_cache_size);
   void *ink_malloc(size_t size);
   void *ink_calloc(size_t nelem, size_t elsize);
   void *ink_realloc(void *ptr, size_t size);
@@ -58,7 +57,6 @@ extern "C"
   void ink_free(void *ptr);
   void ink_memalign_free(void *ptr);
   char *ink_duplicate_string(char *ptr);        /* obsoleted by ink_string_duplicate --- don't use */
-  void ink_memzero(void *src_arg, int nbytes);
   void *ink_memcpy(void *s1, const void *s2, int n);
   void ink_bcopy(void *s1, void *s2, size_t n);
 

Modified: trafficserver/traffic/trunk/proxy/Initialize.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Initialize.cc?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Initialize.cc (original)
+++ trafficserver/traffic/trunk/proxy/Initialize.cc Mon Nov 22 18:38:25 2010
@@ -202,23 +202,6 @@ init_system_core_size(void)
   }
 }
 
-void
-init_system_memalign_heap(void)
-{
-  int64 ram_cache_max = -1;
-  int enable_preallocation = 1;
-
-  REC_ReadConfigInteger(enable_preallocation, "proxy.config.system.memalign_heap");
-  if (enable_preallocation) {
-    REC_ReadConfigInteger(ram_cache_max, "proxy.config.cache.ram_cache.size");
-    if (ram_cache_max > 0) {
-      if (!ink_memalign_heap_init(ram_cache_max))
-        Warning("Unable to init memalign heap");
-    } else {
-      Warning("Unable to read proxy.config.cache.ram_cache.size var from config");
-    }
-  }
-}
 
 int system_syslog_facility = LOG_DAEMON;
 

Modified: trafficserver/traffic/trunk/proxy/Initialize.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Initialize.h?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Initialize.h (original)
+++ trafficserver/traffic/trunk/proxy/Initialize.h Mon Nov 22 18:38:25 2010
@@ -45,7 +45,6 @@ extern int system_syslog_facility;
 void init_system_settings(void);
 void init_system_dirs(void);
 void init_system_core_size(void);
-void init_system_memalign_heap(void);
 void init_system_syslog_log_configure(void);
 //void init_system_logging();
 void init_system_reconfigure_diags(void);

Modified: trafficserver/traffic/trunk/proxy/Main.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Main.cc?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Main.cc (original)
+++ trafficserver/traffic/trunk/proxy/Main.cc Mon Nov 22 18:38:25 2010
@@ -1085,24 +1085,6 @@ init_core_size()
   }
 }
 
-static void
-init_ink_memalign_heap(void)
-{
-  int64 ram_cache_max = -1;
-  int enable_preallocation = 1;
-
-  TS_ReadConfigInteger(enable_preallocation, "proxy.config.system.memalign_heap");
-  if (enable_preallocation) {
-    TS_ReadConfigInteger(ram_cache_max, "proxy.config.cache.ram_cache.size");
-    if (ram_cache_max > 0) {
-      if (!ink_memalign_heap_init(ram_cache_max))
-        Warning("Unable to init memalign heap");
-    } else {
-      Warning("Unable to read proxy.config.cache.ram_cache.size var from config");
-    }
-  }
-}
-
 #if TS_USE_POSIX_CAP
 // Restore the effective capabilities that we need.
 int
@@ -1745,8 +1727,6 @@ main(int argc, char **argv)
   init_core_size();
 
   init_system();
-  // Init memalign heaps
-  init_ink_memalign_heap();
 
   // Adjust system and process settings
   adjust_sys_settings();

Modified: trafficserver/traffic/trunk/proxy/config/records.config.in
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/config/records.config.in?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/config/records.config.in (original)
+++ trafficserver/traffic/trunk/proxy/config/records.config.in Mon Nov 22 18:38:25 2010
@@ -37,7 +37,6 @@ CONFIG proxy.config.cop.linux_min_swapfr
 CONFIG proxy.config.cop.linux_min_memfree_kb INT 10240
 CONFIG proxy.config.snapshot_dir STRING snapshots
 CONFIG proxy.config.system.mmap_max INT 2097152
-CONFIG proxy.config.system.memalign_heap INT 0
 CONFIG proxy.config.exec_thread.autoconfig INT 1
 CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 2.0
 CONFIG proxy.config.exec_thread.limit INT 2

Modified: trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc?rev=1037826&r1=1037825&r2=1037826&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc (original)
+++ trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc Mon Nov 22 18:38:25 2010
@@ -129,9 +129,6 @@ RecordElement RecordsConfig[] = {
   // The maximum number of chunks to allocate with mmap. Setting this to zero disables all use of mmap. (Unix only)
   {CONFIG, "proxy.config.system.mmap_max", "", INK_INT, "1073741823", RU_RESTART_TS, RR_NULL, RC_INT, NULL, RA_READ_ONLY}
   ,
-  // Enable/disable memalign preallocation memory
-  {CONFIG, "proxy.config.system.memalign_heap", "", INK_INT, "0", RU_NULL, RR_NULL, RC_INT, NULL, RA_READ_ONLY}
-  ,
   // Traffic Server Execution threads configuration
   // By default Traffic Server set number of execution threads equal to total CPUs
   {CONFIG, "proxy.config.exec_thread.autoconfig", "", INK_INT, "1", RU_RESTART_TS, RR_NULL, RC_INT, "[0-65535]",