# HG changeset patch # User Merten Sach # Date 1310400583 -7200 # Node ID 97e26095c01fef53783d2d89e11575856ce243c5 # Parent 521c75d64cefc56351e2bd42530f80b575131c52 Version 0 diff -r 521c75d64cef -r 97e26095c01f VMS.c --- a/VMS.c Mon Jul 04 19:45:43 2011 +0200 +++ b/VMS.c Mon Jul 11 18:09:43 2011 +0200 @@ -110,16 +110,16 @@ //============================= MEASUREMENT STUFF ======================== #ifdef MEAS__TIME_MALLOC - _VMSMasterEnv->mallocTimeHist = makeFixedBinHistExt( 100, 0, 100, - "malloc time hist"); + _VMSMasterEnv->mallocTimeHist = makeFixedBinHistExt( 50, 0, 100, + "malloc_time_hist"); _VMSMasterEnv->freeTimeHist = makeFixedBinHistExt( 50, 0, 100, - "free time hist"); + "free_time_hist"); #endif #ifdef MEAS__TIME_PLUGIN _VMSMasterEnv->reqHdlrLowTimeHist = makeFixedBinHistExt( 50, 0, 10, - "plugin low time hist"); + "plugin_low_time_hist"); _VMSMasterEnv->reqHdlrHighTimeHist = makeFixedBinHistExt( 50, 0, 100, - "plugin high time hist"); + "plugin_high_time_hist"); #endif //======================================================================== @@ -683,13 +683,17 @@ //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, &freeHistExt ); #ifdef MEAS__TIME_PLUGIN printHist( _VMSMasterEnv->reqHdlrLowTimeHist ); + saveHistToFile( _VMSMasterEnv->reqHdlrHighTimeHist ); printHist( _VMSMasterEnv->reqHdlrHighTimeHist ); + saveHistToFile( _VMSMasterEnv->reqHdlrHighTimeHist ); freeHistExt( _VMSMasterEnv->reqHdlrLowTimeHist ); freeHistExt( _VMSMasterEnv->reqHdlrHighTimeHist ); #endif #ifdef MEAS__TIME_MALLOC printHist( _VMSMasterEnv->mallocTimeHist ); + saveHistToFile( _VMSMasterEnv->mallocTimeHist ); printHist( _VMSMasterEnv->freeTimeHist ); + saveHistToFile( _VMSMasterEnv->freeTimeHist ); freeHistExt( _VMSMasterEnv->mallocTimeHist ); freeHistExt( _VMSMasterEnv->freeTimeHist ); #endif diff -r 521c75d64cef -r 97e26095c01f VMS.h --- a/VMS.h Mon Jul 04 19:45:43 2011 +0200 +++ b/VMS.h Mon Jul 11 18:09:43 2011 +0200 @@ -93,6 +93,7 @@ #define MALLOC_ADDITIONAL_MEM_FROM_OS_SIZE 0x10000000 /* 256M */ #define CACHE_LINE 64 +#define PAGE_SIZE 4096 //============================== @@ -419,7 +420,7 @@ #define MakeTheMeasHists() \ _VMSMasterEnv->measHistsInfo = \ makePrivDynArrayOfSize( (void***)&(_VMSMasterEnv->measHists), 200); \ - makeAMeasHist( createHistIdx, "create", 50, 0, 1000 ) \ + makeAMeasHist( createHistIdx, "create", 50, 0, 100 ) \ makeAMeasHist( mutexLockHistIdx, "mutex_lock", 50, 0, 100 ) \ makeAMeasHist( mutexUnlockHistIdx, "mutex_unlock", 50, 0, 100 ) \ makeAMeasHist( condWaitHistIdx, "cond_wait", 50, 0, 100 ) \ diff -r 521c75d64cef -r 97e26095c01f vmalloc.c --- a/vmalloc.c Mon Jul 04 19:45:43 2011 +0200 +++ b/vmalloc.c Mon Jul 11 18:09:43 2011 +0200 @@ -450,6 +450,14 @@ freeListHead = malloc( sizeof(MallocProlog) ); firstChunk = malloc( MALLOC_ADDITIONAL_MEM_FROM_OS_SIZE ); if( firstChunk == NULL ) {printf("malloc error\n"); exit(1);} + + //Touch memory to avoid page faults + //void *ptr,*endPtr; + //endPtr = (void*)firstChunk+MALLOC_ADDITIONAL_MEM_FROM_OS_SIZE; + //for(ptr = firstChunk; ptr < endPtr; ptr+=PAGE_SIZE) + //{ + // *(char*)ptr = 0; + //} freeListHead->prevChunkInFreeList = NULL; //Use this addr to free the heap when cleanup