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]",