Exemplo n.º 1
0
VSCache::CacheAction VSCache::recommendSize() {
    // fixme, constants pulled out of my ass
    int total = hits + nearMiss + farMiss;

    if (total == 0)
        return caClear;

    if (total < 30) {
        clearStats();
        return caNoChange; // not enough requests to know what to do so keep it this way
    }

    bool shrink = (nearMiss == 0 && hits == 0 && ((farMiss * 10) / total >= 9));
    bool grow = ((nearMiss * 10) / total >= 1);
#ifdef VS_CACHE_DEBUG
    vsWarning("Cache (%p) stats (%s): %d %d %d %d, size: %d", (void *)this, shrink ? "shrink" : (grow ? "grow" : "keep"), total, farMiss, nearMiss, hits, maxSize);
#endif
    if (grow) { // growing the cache would be beneficial
        clearStats();
        return caGrow;
    } else if (shrink) { // probably a linear scan, no reason to waste space here
        clearStats();
        return caShrink;
    } else {
        clearStats();
        return caNoChange; // probably fine the way it is
    }
}
Exemplo n.º 2
0
CoreData::~CoreData()
{
    if (db.isOpen()) {
        db.close();
    }
    clearStats();
}
Exemplo n.º 3
0
void Team::initialize()
{
   clearStats();     // Sets mPlayerCount, mBotCount, and mRating
   mScore = 0;

   LUAW_CONSTRUCTOR_INITIALIZATIONS;
}
Exemplo n.º 4
0
FlexCAN::FlexCAN (uint8_t id)
{
    uint32_t i;

    flexcanBase = FLEXCAN0_BASE;

#if defined (INCLUDE_FLEXCAN_CAN1)
    if (id > 0)  {
        flexcanBase = FLEXCAN1_BASE;
    }
#endif

    // Default mask is allow everything

    defaultMask.flags.remote = 0;
    defaultMask.flags.extended = 0;
    defaultMask.id = 0;

    // set up the transmit and receive ring buffers

    initRingBuffer (txRing, tx_buffer, SIZE_TX_BUFFER);
    initRingBuffer (rxRing, rx_buffer, SIZE_RX_BUFFER);

    // clear any listeners for received packets

    for (i = 0; i < SIZE_LISTENERS; i++) {
        listener[i] = NULL;
    }

    // clear statistics counts

    clearStats ();
}
AddressProfiler::AddressProfiler()
{
  m_dataAccessTrace = new Map<Address, AccessTraceForAddress>;
  m_macroBlockAccessTrace = new Map<Address, AccessTraceForAddress>;
  m_programCounterAccessTrace = new Map<Address, AccessTraceForAddress>;
  m_retryProfileMap = new Map<Address, AccessTraceForAddress>;
  clearStats();
}
Exemplo n.º 6
0
CacheProfiler::CacheProfiler(string description)
  : m_requestSize(-1)
{
  m_description = description;
  m_requestTypeVec_ptr = new Vector<int>;
  m_requestTypeVec_ptr->setSize(int(GenericRequestType_NUM));

  clearStats();
}
Exemplo n.º 7
0
void tdoaStatsInit(tdoaStats_t* tdoaStats, uint32_t now_ms) {
  memset(tdoaStats, 0, sizeof(tdoaStats_t));
  tdoaStats->remoteAnchorId = tdoaStats->newRemoteAnchorId = 1;

  tdoaStats->packetsReceivedRate = 0;
  tdoaStats->clockCorrectionRate = 0;
  tdoaStats->nextStatisticsTime = now_ms + STATS_INTERVAL;
  tdoaStats->previousStatisticsTime = 0;

  clearStats(tdoaStats);
}
Exemplo n.º 8
0
RepositoryProfile::RepositoryProfile ( QObject *parent )
    : QObject ( parent ), curProfileName ( QApplication::translate ( "RepositoryProfile", "new profile" ) ),
    curUrl ( "ftp://" ),
    curDownloadDir ( QDir::current() ),
    curArchitectures ( RPM::i586 ),
    repositoryType ( YUM ),
    status ( UNKNOWN )
{
  clearStats();

  lister = new RDPackageListerThread ( this );
  connect ( lister, SIGNAL ( finished() ), this, SLOT ( threadFinished() ) );
}
Exemplo n.º 9
0
LLViewerStatsRecorder::LLViewerStatsRecorder() :
	mObjectCacheFile(NULL),
	mTimer(),
	mStartTime(0.0),
	mLastSnapshotTime(0.0)
{
	if (NULL != sInstance)
	{
		LL_ERRS() << "Attempted to create multiple instances of LLViewerStatsRecorder!" << LL_ENDL;
	}
	sInstance = this;
	clearStats();
}
Exemplo n.º 10
0
void CAMDataDePrivate::alloc(int decoder_id, CAMReplacePolicy repl_policy, int num_sets, int blk_byte, int VLB_num_sets)
{
    m_decoder_id = decoder_id;

    m_repl_policy = repl_policy; 

    m_num_sets = num_sets;
    assert(is_power2(blk_byte));
    m_blk_byte = blk_byte;

    clearStats();

    assert(num_sets > 0);

    m_buf_alloc = true;
}
Exemplo n.º 11
0
void SedaStatsStage::manageEvent(StageEvent *event)
{
#if SEDASTATS_MANAGE

    CollectStatsRequest*           collectStatsReq;
    ClearStatsRequest*             clearStatsReq;
    EnableStatsCollectionRequest*  enableStatsReq;
    DisableStatsCollectionRequest* disableStatsReq;

    //Handle the other commEvents sent
    MgmtEvent* mev = dynamic_cast<MgmtEvent*>(event);
    ASSERT(mev, "Expected management event.");

    Request* request = mev->getRequest();
    if (NULL != (collectStatsReq = 
                dynamic_cast<CollectStatsRequest*> (request))){
        LOG_ERROR( "%s", "CollectStatsReq received");
        dumpStats(event);
        return;
    }
    else if (NULL != (clearStatsReq =
                dynamic_cast<ClearStatsRequest*>(request))){
        LOG_ERROR( "%s", "clear stats received");
        clearStats(event);
    }
    else if (NULL != (enableStatsReq =
                dynamic_cast<EnableStatsCollectionRequest*>(request))){
        LOG_ERROR( "%s", "Enable stats received");
        enableCategory(event);
    }
    else if (NULL != (disableStatsReq =
                dynamic_cast<DisableStatsCollectionRequest*>(request))){
        LOG_ERROR( "%s", "Disable stats received");
        disableCategory(event);
    }
    else {
        TRCERR(CtgLog|CtgTrace, "%s", "Unknown event type in handleEvent");
    }
#endif
}
Exemplo n.º 12
0
void tdoaStatsUpdate(tdoaStats_t* tdoaStats, uint32_t now_ms) {
  if (now_ms > tdoaStats->nextStatisticsTime) {
    float interval = now_ms - tdoaStats->previousStatisticsTime;
    if (interval > 0.0f) {
      tdoaStats->packetsReceivedRate = (uint16_t)(1000.0f * tdoaStats->packetsReceived / interval);
      tdoaStats->packetsToEstimatorRate = (uint16_t)(1000.0f * tdoaStats->packetsToEstimator / interval);
      tdoaStats->clockCorrectionRate = (uint16_t)(1000.0f * tdoaStats->clockCorrectionCount / interval);

      tdoaStats->contextHitRate = (uint16_t)(1000.0f * tdoaStats->contextHitCount / interval);
      tdoaStats->contextMissRate = (uint16_t)(1000.0f * tdoaStats->contextMissCount / interval);

      tdoaStats->suitableDataFoundRate = (uint16_t)(1000.0f * tdoaStats->suitableDataFound / interval);
      tdoaStats->timeIsGoodRate = (uint16_t)(1000.0f * tdoaStats->timeIsGood / interval);
    }

    if (tdoaStats->anchorId != tdoaStats->newAnchorId) {
      tdoaStats->anchorId = tdoaStats->newAnchorId;

      // Reset anchor stats
      tdoaStats->clockCorrection = 0.0;
      tdoaStats->tof = 0;
      tdoaStats->tdoa = 0;
    }

    if (tdoaStats->remoteAnchorId != tdoaStats->newRemoteAnchorId) {
      tdoaStats->remoteAnchorId = tdoaStats->newRemoteAnchorId;

      // Reset remote anchor stats
      tdoaStats->tof = 0;
      tdoaStats->tdoa = 0;
    }

    clearStats(tdoaStats);
    tdoaStats->previousStatisticsTime = now_ms;
    tdoaStats->nextStatisticsTime = now_ms + STATS_INTERVAL;
  }
}
Exemplo n.º 13
0
void LLViewerStatsRecorder::writeToLog( F32 interval )
{
	size_t data_size = 0;
	F64 delta_time = LLTimer::getTotalSeconds() - mLastSnapshotTime;
	S32 total_objects = mObjectCacheHitCount + mObjectCacheMissCrcCount + mObjectCacheMissFullCount + mObjectFullUpdates + mObjectTerseUpdates + mObjectCacheMissRequests + mObjectCacheMissResponses + mObjectCacheUpdateDupes + mObjectCacheUpdateChanges + mObjectCacheUpdateAdds + mObjectCacheUpdateReplacements + mObjectUpdateFailures;

	if ( delta_time < interval || total_objects == 0) return;

	mLastSnapshotTime = LLTimer::getTotalSeconds();
	LL_DEBUGS() << "ILX: " 
		<< mObjectCacheHitCount << " hits, " 
		<< mObjectCacheMissFullCount << " full misses, "
		<< mObjectCacheMissCrcCount << " crc misses, "
		<< mObjectFullUpdates << " full updates, "
		<< mObjectTerseUpdates << " terse updates, "
		<< mObjectCacheMissRequests << " cache miss requests, "
		<< mObjectCacheMissResponses << " cache miss responses, "
		<< mObjectCacheUpdateDupes << " cache update dupes, "
		<< mObjectCacheUpdateChanges << " cache update changes, "
		<< mObjectCacheUpdateAdds << " cache update adds, "
		<< mObjectCacheUpdateReplacements << " cache update replacements, "
		<< mObjectUpdateFailures << " update failures"
		<< LL_ENDL;

	if (mObjectCacheFile == NULL)
	{
		mStartTime = LLTimer::getTotalSeconds();
		mObjectCacheFile = LLFile::fopen(STATS_FILE_NAME, "wb");
		if (mObjectCacheFile)
		{	// Write column headers
			std::ostringstream data_msg;
			data_msg << "EventTime(ms)\t"
				<< "Cache Hits\t"
				<< "Cache Full Misses\t"
				<< "Cache Crc Misses\t"
				<< "Full Updates\t"
				<< "Terse Updates\t"
				<< "Cache Miss Requests\t"
				<< "Cache Miss Responses\t"
				<< "Cache Update Dupes\t"
				<< "Cache Update Changes\t"
				<< "Cache Update Adds\t"
				<< "Cache Update Replacements\t"
				<< "Update Failures\t"
				<< "Cache Hits bps\t"
				<< "Cache Full Misses bps\t"
				<< "Cache Crc Misses bps\t"
				<< "Full Updates bps\t"
				<< "Terse Updates bps\t"
				<< "Cache Miss Responses bps\t"
				<< "Texture Fetch bps\t"
				<< "\n";

			data_size = data_msg.str().size();
			if (fwrite(data_msg.str().c_str(), 1, data_size, mObjectCacheFile ) != data_size)
			{
				LL_WARNS() << "failed to write full headers to " << STATS_FILE_NAME << LL_ENDL;
			}
		}
		else
		{
			//LL_WARNS() << "Couldn't open " << STATS_FILE_NAME << " for logging." << LL_ENDL;
			return;
		}
	}

	std::ostringstream data_msg;

	data_msg << getTimeSinceStart()
		<< "\t " << mObjectCacheHitCount
		<< "\t" << mObjectCacheMissFullCount
		<< "\t" << mObjectCacheMissCrcCount
		<< "\t" << mObjectFullUpdates
		<< "\t" << mObjectTerseUpdates
		<< "\t" << mObjectCacheMissRequests
		<< "\t" << mObjectCacheMissResponses
		<< "\t" << mObjectCacheUpdateDupes
		<< "\t" << mObjectCacheUpdateChanges
		<< "\t" << mObjectCacheUpdateAdds
		<< "\t" << mObjectCacheUpdateReplacements
		<< "\t" << mObjectUpdateFailures
		<< "\t" << (mObjectCacheHitSize * 8 / delta_time)
		<< "\t" << (mObjectCacheMissFullSize * 8 / delta_time)
		<< "\t" << (mObjectCacheMissCrcSize * 8 / delta_time)
		<< "\t" << (mObjectFullUpdatesSize * 8 / delta_time)
		<< "\t" << (mObjectTerseUpdatesSize * 8 / delta_time)
		<< "\t" << (mObjectCacheMissResponsesSize * 8 / delta_time)
		<< "\t" << (mTextureFetchSize * 8 / delta_time)
		<< "\n";

	data_size = data_msg.str().size();
	if ( data_size != fwrite(data_msg.str().c_str(), 1, data_size, mObjectCacheFile ))
	{
				LL_WARNS() << "Unable to write complete column data to " << STATS_FILE_NAME << LL_ENDL;
	}

	clearStats();
}
Exemplo n.º 14
0
// Constructors
Dram::Dram(AbstractChip* chip_ptr, int version)
{
    //CHUNGO!
    ptrDram[version]= this;

    //MSHR

    demandMSHRSizeCt=32;
    prefMSHRSizeCt=32;
    lastL2BankServed=0;


    prefetchQueueSizeCt=8;
    demandQueueSizeCt=32;
    //el patr—n de acierto est‡ definido como 4+4+7+4+4

    readHitBankBusyMask = 0x7F00;  // 0111 1111 0000 0000  - 7^1 4^0 4^0
    writeHitBankBusyMask = 0x7F00;   // 0111 1111 0000 0000  - 7^1 4^0 4^0

    if(g_CYCLES_BUS_DRAM==1) readHitBusBusyMask = 0x80000; // 1000 0000 0000 0000 0000 - 4^1 19^0
    else if(g_CYCLES_BUS_DRAM==4)
    {
        readHitBusBusyMask = 0x78000; // 0111 1000 0000 0000 0000 - 4^1 15^0
        writeHitBusBusyMask = 0xf00; // 1111 0000 0000 -
    }
    else cerr << "HAY un error grave en g_CYCLES_BUS_DRAM" << endl;

    //el patr—n de fallo est‡ definido como 4+4+7+8+7+4+4
    readMissBankBusyMask = 0x3FFFFF00; // 0011 1111 1111 1111 1111 1111 0000 0000 - 22^1 8^0
    writeMissBankBusyMask = 0x3FFFFF00; // 0011 1111 1111 1111 1111 1111 0000 0000 - 22^1 8^0

    if(g_CYCLES_BUS_DRAM==1) readMissBusBusyMask = 0x400000000; //  0100 0000 0000 0000 0000 0000 0000 0000 0000 -  4^1 34^0  //para ocupar el bus 1 ciclo
    else if(g_CYCLES_BUS_DRAM==4)
    {
        readMissBusBusyMask = 0x3C0000000;  // 0011 1100 0000 0000 0000 0000 0000 0000 0000 -  4^1 30^0
        writeMissBusBusyMask = 0xf000000;  //  1111 0000 0000 0000 0000 0000 0000 -  4^1 34^0
    }
    else cerr << "HAY un error grave en g_CYCLES_BUS_DRAM" << endl;

    m_version=version;
    numOfBanks=16;
    logNumOfBanks=4;


    m_chip_ptr=chip_ptr;
    banks.setSize(numOfBanks);
    for(int i=0; i<numOfBanks; i++)
    {
        banks[i].bankBusyBitmap=0;
        banks[i].busy=false;
        banks[i].scheduled=false;
    }
    lastBankUsed=0;

    srand(version);

    //stats
    cyclesBusBusyPerProc.setSize(RubyConfig::numberOfProcsPerChip());
    cyclesBusBusyRatioPerProc.setSize(RubyConfig::numberOfProcsPerChip());

    numRequestsQueued.setSize(numOfBanks);
    numDemandsQueued.setSize(numOfBanks);
    numPrefetchsQueued.setSize(numOfBanks);

    numRequestsServed.setSize(numOfBanks);
    numDemandsServed.setSize(numOfBanks);
    numPrefetchsServed.setSize(numOfBanks);

    numPrefetchPageHits.setSize(numOfBanks);
    numDemandPageHits.setSize(numOfBanks);

    cyclesDemandService.setSize(numOfBanks);
    cyclesPrefetchService.setSize(numOfBanks);

    avgLatDemandService.setSize(numOfBanks);
    avgLatPrefetchService.setSize(numOfBanks);
    avgLatService.setSize(numOfBanks);

    demandPageHitRatio.setSize(numOfBanks);
    prefetchPageHitRatio.setSize(numOfBanks);
    pageHitRatio.setSize(numOfBanks);

    numSecondMissesServed.setSize(numOfBanks);
    numSecondMissPageHits.setSize(numOfBanks);
    secondMissPageHitRatio.setSize(numOfBanks);

    latDemandMin.setSize(numOfBanks);
    latDemandMax.setSize(numOfBanks);

    latPrefetchMin.setSize(numOfBanks);
    latPrefetchMax.setSize(numOfBanks);


    medDemandQueueSize.setSize(numOfBanks);
    medPrefetchQueueSize.setSize(numOfBanks);

    maxDemandQueueSize.setSize(numOfBanks);
    maxPrefetchQueueSize.setSize(numOfBanks);

    //PattsMetrics
    coresQueued.setSize(numOfBanks);
    for(int i=0; i<numOfBanks; i++) coresQueued[i].setSize(RubyConfig::numberOfProcsPerChip());
    BWC.setSize(numOfBanks);
    BWNO.setSize(numOfBanks);

    //inicializamos stats
    clearStats();

    //prefMSHR.setSize(0);
    //demandMSHR.setSize(0);

    if(!g_QUICK_MEM) g_eventQueue_ptr->scheduleEvent(this, 1);
}
Exemplo n.º 15
0
	/// resets the Reactor to its initial state
	virtual void reset(void) { clearStats(); }
Exemplo n.º 16
0
int main(int argc, char **argv){
  //  int fd=0;
  int ans=0, mapKick=0;
  int kk=0;
/*
  Shared memory creation and attachment
  the segment number is stored in lnptr->pid
*/
  mapKick = mmapSetup();
  if (mapKick == -1) {
    printf(" Error on setting up memory map ... exiting \n");
    return 0;
  }
/*
  Scroll through options
*/
  while (ans != 100){
    menu();
    ans = scan2int();
    //    scanf ("%i", &ans);          // read in ans (pointer is indicated)     
    if (ans < 0 || ans > 100) ans = 1;   // give status in response
    if (mtcptr->com0 == 100){
      printf("kick-u3 must have received an exit command from another kick-read program so this program is ending too!\n");
      ans=100;
    }
    switch (ans){
    case 0:                    // end program but not deg-u3
      ans=100;
      break;
    case 1:                   // status
      mtcptr->com0 = 0;
      break;
    case 2:                   // run pulsing
      mtcptr->onoff = 1;
      mtcptr->com0 = 0;
      break;
    case 3:                   // stop pulsing
      mtcptr->onoff = 0;
      mtcptr->com0 = 0;
      break;
    case 4:                   // continuous beam
      mtcptr->onoff = 0;
      mtcptr->com0 = 3;
      break;
    case 5:                   // stop beam   
      mtcptr->onoff = 0;
      mtcptr->com0 = 2;
      break;
    case 6:                   // move MTC
      mtcptr->onoff = 0;
      mtcptr->com0 = 6;
      break;
    case 7:                   // set parameters
      kk = parameters();
      if (kk == 0) {
	mtcptr->com0 = 7;     // mode and parameters changed so load Arrays must be called
	mtcptr->com1 = 1;     // mode and parameters changed so kick-mon must be told
      }
	break;
    case 8:                   // clear stats
      clearStats();
      break;
    case 9:                    // reset mtc faults
      mtcptr->tapeBreak = 0;
      mtcptr->tapeFault = 0;
      mtcptr->com2 = 0;
      break;
    case 10:                  // laser calibrator on
      mtcptr->onoff = 0;
      mtcptr->com0 = 4;
      break;

    case 11:                   // all LJ off
      mtcptr->onoff = 0;
      mtcptr->com0 = 3;
      break;

    case 99:                   // help
      help();
      break;
    case 100:                 // End ALL deg-u3 programs by breaking out of while statement
      ans = 100;       //send end command to main program
      mtcptr->onoff=0;
      mtcptr->com0 = 100;
      break;

    default:                  // Do nothing and go back to the list of options
      ans = 0;
      break;      
    }  
  }

/*
  Ending the program so release the memory map and close file
*/

  if (munmap(mtcptr, sizeof (struct mtc*)) == -1) {
    perror("Error un-mapping the file");
  }
  close(mapKick);

  printf(" File closed and file unmapped \n");
  
  return (0);
}
Exemplo n.º 17
0
CacheProfiler::CacheProfiler(string description)
  : m_requestSize(-1)
{
  m_description = description;
  m_requestTypeVec_ptr = new Vector<int>;
  m_requestTypeVec_ptr->setSize(int(GenericRequestType_NUM));

//  m_misses=new vector<int64>;
 // m_misses_ratio=new vector <double>;
  //misses_per_instruction= new vector <double>;
  misses_per_instruction.setSize(RubyConfig::numberOfProcessors());
  // m_demand_misses= new vector <int64> ; 
  m_demand_misses.setSize(RubyConfig::numberOfProcessors());
  //m_prefetches= new vector <int64>; 
  m_prefetches.setSize(RubyConfig::numberOfProcessors());
  //m_sw_prefetches= new vector <int64>; 
  m_sw_prefetches.setSize(RubyConfig::numberOfProcessors());
  //m_hw_prefetches= new vector <int64>; 
  m_hw_prefetches.setSize(RubyConfig::numberOfProcessors());

//JORGE  
   //m_accesos_user= new vector <int64>; 
   m_accesos_user.setSize(RubyConfig::numberOfProcessors());
   
  //m_accesos_super= new vector <int64>; 
  m_accesos_super.setSize(RubyConfig::numberOfProcessors());
  m_misses_super.setSize(RubyConfig::numberOfProcessors());
  m_misses_user.setSize(RubyConfig::numberOfProcessors());
  m_dataMisses_super.setSize(RubyConfig::numberOfProcessors());
  m_dataMisses_user.setSize(RubyConfig::numberOfProcessors());
  
  //m_total_accesos= new vector <int64>; 
  m_total_accesos.setSize(RubyConfig::numberOfProcessors());
  
  m_l2_total_accesos.setSize(RubyConfig::numberOfProcessors());
  m_l15_total_accesos.setSize(RubyConfig::numberOfProcessors());
  
  //m_l2_accesos_user= new vector <int64>; 
  m_l15_accesos_user.setSize(RubyConfig::numberOfProcessors());
  m_l2_accesos_user.setSize(RubyConfig::numberOfProcessors());
  //m_l2_accesos_super= new vector <int64>; 
  m_l15_accesos_super.setSize(RubyConfig::numberOfProcessors());
  m_l2_accesos_super.setSize(RubyConfig::numberOfProcessors());
  //m_accesos_user_ratio= new vector <double>; 
  m_accesos_user_ratio.setSize(RubyConfig::numberOfProcessors());
  m_l15_accesos_user_ratio.setSize(RubyConfig::numberOfProcessors());
  m_l2_accesos_user_ratio.setSize(RubyConfig::numberOfProcessors());
  //m_accesos_super_ratio= new vector <double>; 
  m_accesos_super_ratio.setSize(RubyConfig::numberOfProcessors());
    m_l15_accesos_super_ratio.setSize(RubyConfig::numberOfProcessors());
    m_l2_accesos_super_ratio.setSize(RubyConfig::numberOfProcessors());
  
  m_loads_user.setSize(RubyConfig::numberOfProcessors());
  m_loads_super.setSize(RubyConfig::numberOfProcessors());
  m_stores_user.setSize(RubyConfig::numberOfProcessors()); 
  m_stores_super.setSize(RubyConfig::numberOfProcessors());
  
  m_pref_inv.setSize(RubyConfig::numberOfProcessors());
  
  m_misses_ratio.setSize(RubyConfig::numberOfProcessors());
  m_l15_misses_ratio.setSize(RubyConfig::numberOfProcessors());
  m_l2_misses_ratio.setSize(RubyConfig::numberOfProcessors());
  m_misses_user.setSize(RubyConfig::numberOfProcessors());
  m_misses_super.setSize(RubyConfig::numberOfProcessors());
  m_dataMisses_user.setSize(RubyConfig::numberOfProcessors());
  m_dataMisses_super.setSize(RubyConfig::numberOfProcessors());
  m_miss_user_ratio.setSize(RubyConfig::numberOfProcessors());
   m_miss_super_ratio.setSize(RubyConfig::numberOfProcessors());
  
 m_misses.setSize(RubyConfig::numberOfProcessors());
 m_dataMisses.setSize(RubyConfig::numberOfProcessors());

   m_l2_misses_user.setSize(RubyConfig::numberOfProcessors());
   m_l2_misses_super.setSize(RubyConfig::numberOfProcessors());
   m_l2_miss_user_ratio.setSize(RubyConfig::numberOfProcessors());
   m_l2_miss_super_ratio.setSize(RubyConfig::numberOfProcessors());
 m_l2_total_accesos.setSize(RubyConfig::numberOfProcessors());
  
  m_l15_misses_user.setSize(RubyConfig::numberOfProcessors());
  m_l15_misses_super.setSize(RubyConfig::numberOfProcessors());
   m_l15_miss_user_ratio.setSize(RubyConfig::numberOfProcessors());
   m_l15_miss_super_ratio.setSize(RubyConfig::numberOfProcessors());
 m_l15_total_accesos.setSize(RubyConfig::numberOfProcessors());
  m_hitsTag.setSize(RubyConfig::numberOfProcessors());
  m_hitsData.setSize(RubyConfig::numberOfProcessors());
  m_firstInsertions.setSize(RubyConfig::numberOfProcessors());
  m_perProcInstructionCount.setSize(RubyConfig::numberOfProcessors());
  clearStats();

}
Exemplo n.º 18
0
PreScanOutputDev::PreScanOutputDev() {
  clearStats();
}
void LLViewerStatsRecorder::writeToLog( F32 interval )
{
	F64 delta_time = LLTimer::getTotalSeconds() - mLastSnapshotTime;
	S32 total_objects = mObjectCacheHitCount + mObjectCacheMissCrcCount + mObjectCacheMissFullCount + mObjectFullUpdates + mObjectTerseUpdates + mObjectCacheMissRequests + mObjectCacheMissResponses + mObjectCacheUpdateDupes + mObjectCacheUpdateChanges + mObjectCacheUpdateAdds + mObjectCacheUpdateReplacements + mObjectUpdateFailures;

	if ( delta_time < interval || total_objects == 0) return;

	mLastSnapshotTime = LLTimer::getTotalSeconds();
	lldebugs << "ILX: " 
		<< mObjectCacheHitCount << " hits, " 
		<< mObjectCacheMissFullCount << " full misses, "
		<< mObjectCacheMissCrcCount << " crc misses, "
		<< mObjectFullUpdates << " full updates, "
		<< mObjectTerseUpdates << " terse updates, "
		<< mObjectCacheMissRequests << " cache miss requests, "
		<< mObjectCacheMissResponses << " cache miss responses, "
		<< mObjectCacheUpdateDupes << " cache update dupes, "
		<< mObjectCacheUpdateChanges << " cache update changes, "
		<< mObjectCacheUpdateAdds << " cache update adds, "
		<< mObjectCacheUpdateReplacements << " cache update replacements, "
		<< mObjectUpdateFailures << " update failures"
		<< llendl;

	if (mObjectCacheFile == NULL)
	{
		mStartTime = LLTimer::getTotalSeconds();
		mObjectCacheFile = LLFile::fopen(STATS_FILE_NAME, "wb");
		if (mObjectCacheFile)
		{	// Write column headers
			std::ostringstream data_msg;
			data_msg << "EventTime(ms)\t"
				<< "Cache Hits\t"
				<< "Cache Full Misses\t"
				<< "Cache Crc Misses\t"
				<< "Full Updates\t"
				<< "Terse Updates\t"
				<< "Cache Miss Requests\t"
				<< "Cache Miss Responses\t"
				<< "Cache Update Dupes\t"
				<< "Cache Update Changes\t"
				<< "Cache Update Adds\t"
				<< "Cache Update Replacements\t"
				<< "Update Failures\t"
				<< "Cache Hits bps\t"
				<< "Cache Full Misses bps\t"
				<< "Cache Crc Misses bps\t"
				<< "Full Updates bps\t"
				<< "Terse Updates bps\t"
				<< "Cache Miss Responses bps\t"
				<< "Texture Fetch bps\t"
				<< "\n";

			// <FS:ND> Make GCC happy about return value of fwrite not used

			// fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile );

			size_t nWritten = fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile );
			if( nWritten != data_msg.str().size() )
			{
				llwarns << "Write truncated, tried to write " << data_msg.str().size() << " written " << nWritten << llendl;
			}

			// </FS:ND>
		}
		else
		{
			llwarns << "Couldn't open " << STATS_FILE_NAME << " for logging." << llendl;
			return;
		}
	}

	std::ostringstream data_msg;

	data_msg << getTimeSinceStart()
		<< "\t " << mObjectCacheHitCount
		<< "\t" << mObjectCacheMissFullCount
		<< "\t" << mObjectCacheMissCrcCount
		<< "\t" << mObjectFullUpdates
		<< "\t" << mObjectTerseUpdates
		<< "\t" << mObjectCacheMissRequests
		<< "\t" << mObjectCacheMissResponses
		<< "\t" << mObjectCacheUpdateDupes
		<< "\t" << mObjectCacheUpdateChanges
		<< "\t" << mObjectCacheUpdateAdds
		<< "\t" << mObjectCacheUpdateReplacements
		<< "\t" << mObjectUpdateFailures
		<< "\t" << (mObjectCacheHitSize * 8 / delta_time)
		<< "\t" << (mObjectCacheMissFullSize * 8 / delta_time)
		<< "\t" << (mObjectCacheMissCrcSize * 8 / delta_time)
		<< "\t" << (mObjectFullUpdatesSize * 8 / delta_time)
		<< "\t" << (mObjectTerseUpdatesSize * 8 / delta_time)
		<< "\t" << (mObjectCacheMissResponsesSize * 8 / delta_time)
		<< "\t" << (mTextureFetchSize * 8 / delta_time)
		<< "\n";

	// <FS:ND> Make GCC happy about return value of fwrite not used

	// fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile );

	size_t nWritten = fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile );
	if( nWritten != data_msg.str().size() )
	{
		llwarns << "Write truncated, tried to write " << data_msg.str().size() << " written " << nWritten << llendl;
	}

	// </FS:ND>

	clearStats();
}
Exemplo n.º 20
0
void RepositoryProfile::computeProfileStatus()
{
  // clear stats
  clearStats();

  // set download size to zero so that calculate works as expected
  requiredDownlodSize = 0;

  if ( packages.size() < 1 ) {
    status = UNKNOWN;
    return;
  }

  bool allOk = true;

  bool allFailed = true;
  bool allUnknown = true;
  bool atLeastOneUpdate = false;
  bool someAvailable = false;
  bool someLocalAvailable = false;

  QHash<QString, Package>::const_iterator packageIterator = packages.begin();

  for ( ; packageIterator != packages.end(); ++packageIterator ) {
    if ( packageIterator.value().packageStatus() == OK ) {
      allUnknown = false;
      allFailed = false;
      ++okPackages;

    } else if ( packageIterator.value().packageStatus() == FAILED ) {
      allOk = false;
      allUnknown = false;
      ++failedPackages;

    } else if ( packageIterator.value().packageStatus() == UNKNOWN ) {
      allOk = false;
      allFailed = false;
      ++unknownPackages;

    } else if ( packageIterator.value().packageStatus() == LOCALAVAIL ) {
      allOk = false;
      allFailed = false;
      someLocalAvailable = true;
      ++localAvailPackages;

    } else if ( packageIterator.value().packageStatus() == UPDATE ) {
      allOk = false;
      allUnknown = false;
      allFailed = false;
      atLeastOneUpdate = true;
      ++updatedPackages;

    } else if ( packageIterator.value().packageStatus() == AVAILABLE ) {
      allOk = false;
      allUnknown = false;
      someAvailable = true;
      ++availPackages;

    } else {
      allOk = false;
      allFailed = false;
    }

    requiredDownlodSize += getRequiredDownloadSizeForPackage ( packageIterator.value() );
  }

  if ( atLeastOneUpdate )
    status = UPDATE;
  else if ( allOk && !atLeastOneUpdate && !someLocalAvailable )
    status = OK;
  else if ( someAvailable )
    status = AVAILABLE;
  else if ( allFailed )
    status = FAILED;
  else if ( allUnknown )
    status = UNKNOWN;
  else if ( someLocalAvailable )
    status = LOCALAVAIL;

  if ( requiredDownlodSize < 0 ) // could not calculate size
    requiredDownlodSize = -1;
}
Exemplo n.º 21
0
void TempStats::onEvent(BusEvent event, va_list ap) {
	if (event == BusEvent::CLEAR_STATS) {
		clearStats();
	}
}