+
+ GPUCoalescer *coal = ctr->getGPUCoalescer();
+ if (coal != NULL) {
+ // add all the latencies
+ m_latencyHistCoalsr.add(coal->getLatencyHist());
+ m_missLatencyHistCoalsr.add(coal->getMissLatencyHist());
+
+ // add the per request type latencies
+ for (uint32_t j = 0; j < RubyRequestType_NUM; ++j) {
+ m_typeLatencyHistCoalsr[j]
+ ->add(coal->getTypeLatencyHist(j));
+ m_missTypeLatencyHistCoalsr[j]
+ ->add(coal->getMissTypeLatencyHist(j));
+ }
+
+ // add the per machine type miss latencies
+ for (uint32_t j = 0; j < MachineType_NUM; ++j) {
+ m_missMachLatencyHistCoalsr[j]
+ ->add(coal->getMissMachLatencyHist(j));
+
+ m_IssueToInitialDelayHistCoalsr[j]->add(
+ coal->getIssueToInitialDelayHist(MachineType(j)));
+
+ m_InitialToForwardDelayHistCoalsr[j]->add(
+ coal->getInitialToForwardDelayHist(MachineType(j)));
+ m_ForwardToFirstResponseDelayHistCoalsr[j]->add(coal->
+ getForwardRequestToFirstResponseHist(MachineType(j)));
+
+ m_FirstResponseToCompletionDelayHistCoalsr[j]->add(coal->
+ getFirstResponseToCompletionDelayHist(
+ MachineType(j)));
+ }
+
+ // add the per (request, machine) type miss latencies
+ for (uint32_t j = 0; j < RubyRequestType_NUM; j++) {
+ for (uint32_t k = 0; k < MachineType_NUM; k++) {
+ m_missTypeMachLatencyHistCoalsr[j][k]->add(
+ coal->getMissTypeMachLatencyHist(j,k));
+ }
+ }
+ }