+ occupancies
+ .init(cache->system->maxMasters())
+ .name(name() + ".occ_blocks")
+ .desc("Average occupied blocks per requestor")
+ .flags(nozero | nonan)
+ ;
+ for (int i = 0; i < cache->system->maxMasters(); i++) {
+ occupancies.subname(i, cache->system->getMasterName(i));
+ }
+
+ avgOccs
+ .name(name() + ".occ_percent")
+ .desc("Average percentage of cache occupancy")
+ .flags(nozero | total)
+ ;
+ for (int i = 0; i < cache->system->maxMasters(); i++) {
+ avgOccs.subname(i, cache->system->getMasterName(i));
+ }
+
+ avgOccs = occupancies / Stats::constant(numBlocks);
+
+ occupanciesTaskId
+ .init(ContextSwitchTaskId::NumTaskId)
+ .name(name() + ".occ_task_id_blocks")
+ .desc("Occupied blocks per task id")
+ .flags(nozero | nonan)
+ ;
+
+ ageTaskId
+ .init(ContextSwitchTaskId::NumTaskId, 5)
+ .name(name() + ".age_task_id_blocks")
+ .desc("Occupied blocks per task id")
+ .flags(nozero | nonan)
+ ;
+
+ percentOccsTaskId
+ .name(name() + ".occ_task_id_percent")
+ .desc("Percentage of cache occupancy per task id")
+ .flags(nozero)
+ ;
+
+ percentOccsTaskId = occupanciesTaskId / Stats::constant(numBlocks);
+
+ tagAccesses
+ .name(name() + ".tag_accesses")
+ .desc("Number of tag accesses")
+ ;
+
+ dataAccesses
+ .name(name() + ".data_accesses")
+ .desc("Number of data accesses")
+ ;
+
+ registerDumpCallback(new BaseTagsDumpCallback(this));