44a45,46
> #include "mem/ruby/profiler/Profiler.hh"
>
57c59
< #include "mem/ruby/profiler/Profiler.hh"
---
> #include "mem/ruby/system/GPUCoalescer.hh"
109c111
< m_outstandReqHist
---
> m_outstandReqHistSeqr
111c113
< .name(pName + ".outstanding_req_hist")
---
> .name(pName + ".outstanding_req_hist_seqr")
115c117
< m_latencyHist
---
> m_outstandReqHistCoalsr
117c119
< .name(pName + ".latency_hist")
---
> .name(pName + ".outstanding_req_hist_coalsr")
121c123
< m_hitLatencyHist
---
> m_latencyHistSeqr
123c125
< .name(pName + ".hit_latency_hist")
---
> .name(pName + ".latency_hist_seqr")
127c129
< m_missLatencyHist
---
> m_latencyHistCoalsr
129c131
< .name(pName + ".miss_latency_hist")
---
> .name(pName + ".latency_hist_coalsr")
132a135,152
> m_hitLatencyHistSeqr
> .init(10)
> .name(pName + ".hit_latency_hist_seqr")
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_missLatencyHistSeqr
> .init(10)
> .name(pName + ".miss_latency_hist_seqr")
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_missLatencyHistCoalsr
> .init(10)
> .name(pName + ".miss_latency_hist_coalsr")
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
134,135c154,155
< m_typeLatencyHist.push_back(new Stats::Histogram());
< m_typeLatencyHist[i]
---
> m_typeLatencyHistSeqr.push_back(new Stats::Histogram());
> m_typeLatencyHistSeqr[i]
137c157
< .name(pName + csprintf(".%s.latency_hist",
---
> .name(pName + csprintf(".%s.latency_hist_seqr",
142,143c162,163
< m_hitTypeLatencyHist.push_back(new Stats::Histogram());
< m_hitTypeLatencyHist[i]
---
> m_typeLatencyHistCoalsr.push_back(new Stats::Histogram());
> m_typeLatencyHistCoalsr[i]
145c165
< .name(pName + csprintf(".%s.hit_latency_hist",
---
> .name(pName + csprintf(".%s.latency_hist_coalsr",
150,151c170,171
< m_missTypeLatencyHist.push_back(new Stats::Histogram());
< m_missTypeLatencyHist[i]
---
> m_hitTypeLatencyHistSeqr.push_back(new Stats::Histogram());
> m_hitTypeLatencyHistSeqr[i]
153c173
< .name(pName + csprintf(".%s.miss_latency_hist",
---
> .name(pName + csprintf(".%s.hit_latency_hist_seqr",
156a177,192
>
> m_missTypeLatencyHistSeqr.push_back(new Stats::Histogram());
> m_missTypeLatencyHistSeqr[i]
> ->init(10)
> .name(pName + csprintf(".%s.miss_latency_hist_seqr",
> RubyRequestType(i)))
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_missTypeLatencyHistCoalsr.push_back(new Stats::Histogram());
> m_missTypeLatencyHistCoalsr[i]
> ->init(10)
> .name(pName + csprintf(".%s.miss_latency_hist_coalsr",
> RubyRequestType(i)))
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
160,161c196,197
< m_hitMachLatencyHist.push_back(new Stats::Histogram());
< m_hitMachLatencyHist[i]
---
> m_hitMachLatencyHistSeqr.push_back(new Stats::Histogram());
> m_hitMachLatencyHistSeqr[i]
163c199
< .name(pName + csprintf(".%s.hit_mach_latency_hist",
---
> .name(pName + csprintf(".%s.hit_mach_latency_hist_seqr",
168,169c204,205
< m_missMachLatencyHist.push_back(new Stats::Histogram());
< m_missMachLatencyHist[i]
---
> m_missMachLatencyHistSeqr.push_back(new Stats::Histogram());
> m_missMachLatencyHistSeqr[i]
171c207
< .name(pName + csprintf(".%s.miss_mach_latency_hist",
---
> .name(pName + csprintf(".%s.miss_mach_latency_hist_seqr",
176,177c212,213
< m_IssueToInitialDelayHist.push_back(new Stats::Histogram());
< m_IssueToInitialDelayHist[i]
---
> m_missMachLatencyHistCoalsr.push_back(new Stats::Histogram());
> m_missMachLatencyHistCoalsr[i]
178a215,222
> .name(pName + csprintf(".%s.miss_mach_latency_hist_coalsr",
> MachineType(i)))
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_IssueToInitialDelayHistSeqr.push_back(new Stats::Histogram());
> m_IssueToInitialDelayHistSeqr[i]
> ->init(10)
180c224
< ".%s.miss_latency_hist.issue_to_initial_request",
---
> ".%s.miss_latency_hist_seqr.issue_to_initial_request",
185,186c229,230
< m_InitialToForwardDelayHist.push_back(new Stats::Histogram());
< m_InitialToForwardDelayHist[i]
---
> m_IssueToInitialDelayHistCoalsr.push_back(new Stats::Histogram());
> m_IssueToInitialDelayHistCoalsr[i]
188c232,241
< .name(pName + csprintf(".%s.miss_latency_hist.initial_to_forward",
---
> .name(pName + csprintf(
> ".%s.miss_latency_hist_coalsr.issue_to_initial_request",
> MachineType(i)))
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_InitialToForwardDelayHistSeqr.push_back(new Stats::Histogram());
> m_InitialToForwardDelayHistSeqr[i]
> ->init(10)
> .name(pName + csprintf(".%s.miss_latency_hist_seqr.initial_to_forward",
193,194c246,247
< m_ForwardToFirstResponseDelayHist.push_back(new Stats::Histogram());
< m_ForwardToFirstResponseDelayHist[i]
---
> m_InitialToForwardDelayHistCoalsr.push_back(new Stats::Histogram());
> m_InitialToForwardDelayHistCoalsr[i]
195a249,256
> .name(pName + csprintf(".%s.miss_latency_hist_coalsr.initial_to_forward",
> MachineType(i)))
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_ForwardToFirstResponseDelayHistSeqr.push_back(new Stats::Histogram());
> m_ForwardToFirstResponseDelayHistSeqr[i]
> ->init(10)
197c258
< ".%s.miss_latency_hist.forward_to_first_response",
---
> ".%s.miss_latency_hist_seqr.forward_to_first_response",
202,203c263,264
< m_FirstResponseToCompletionDelayHist.push_back(new Stats::Histogram());
< m_FirstResponseToCompletionDelayHist[i]
---
> m_ForwardToFirstResponseDelayHistCoalsr.push_back(new Stats::Histogram());
> m_ForwardToFirstResponseDelayHistCoalsr[i]
206c267
< ".%s.miss_latency_hist.first_response_to_completion",
---
> ".%s.miss_latency_hist_coalsr.forward_to_first_response",
211,212c272,277
< m_IncompleteTimes[i]
< .name(pName + csprintf(".%s.incomplete_times", MachineType(i)))
---
> m_FirstResponseToCompletionDelayHistSeqr.push_back(new Stats::Histogram());
> m_FirstResponseToCompletionDelayHistSeqr[i]
> ->init(10)
> .name(pName + csprintf(
> ".%s.miss_latency_hist_seqr.first_response_to_completion",
> MachineType(i)))
213a279,292
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_FirstResponseToCompletionDelayHistCoalsr.push_back(new Stats::Histogram());
> m_FirstResponseToCompletionDelayHistCoalsr[i]
> ->init(10)
> .name(pName + csprintf(
> ".%s.miss_latency_hist_coalsr.first_response_to_completion",
> MachineType(i)))
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
>
> m_IncompleteTimesSeqr[i]
> .name(pName + csprintf(".%s.incomplete_times_seqr", MachineType(i)))
> .desc("")
218,219c297,299
< m_hitTypeMachLatencyHist.push_back(std::vector<Stats::Histogram *>());
< m_missTypeMachLatencyHist.push_back(std::vector<Stats::Histogram *>());
---
> m_hitTypeMachLatencyHistSeqr.push_back(std::vector<Stats::Histogram *>());
> m_missTypeMachLatencyHistSeqr.push_back(std::vector<Stats::Histogram *>());
> m_missTypeMachLatencyHistCoalsr.push_back(std::vector<Stats::Histogram *>());
222,223c302,303
< m_hitTypeMachLatencyHist[i].push_back(new Stats::Histogram());
< m_hitTypeMachLatencyHist[i][j]
---
> m_hitTypeMachLatencyHistSeqr[i].push_back(new Stats::Histogram());
> m_hitTypeMachLatencyHistSeqr[i][j]
225c305
< .name(pName + csprintf(".%s.%s.hit_type_mach_latency_hist",
---
> .name(pName + csprintf(".%s.%s.hit_type_mach_latency_hist_seqr",
230,231c310,311
< m_missTypeMachLatencyHist[i].push_back(new Stats::Histogram());
< m_missTypeMachLatencyHist[i][j]
---
> m_missTypeMachLatencyHistSeqr[i].push_back(new Stats::Histogram());
> m_missTypeMachLatencyHistSeqr[i][j]
233c313
< .name(pName + csprintf(".%s.%s.miss_type_mach_latency_hist",
---
> .name(pName + csprintf(".%s.%s.miss_type_mach_latency_hist_seqr",
236a317,324
>
> m_missTypeMachLatencyHistCoalsr[i].push_back(new Stats::Histogram());
> m_missTypeMachLatencyHistCoalsr[i][j]
> ->init(10)
> .name(pName + csprintf(".%s.%s.miss_type_mach_latency_hist_coalsr",
> RubyRequestType(i), MachineType(j)))
> .desc("")
> .flags(Stats::nozero | Stats::pdf | Stats::oneline);
274c362
< m_outstandReqHist.add(seq->getOutstandReqHist());
---
> m_outstandReqHistSeqr.add(seq->getOutstandReqHist());
275a364,367
> GPUCoalescer *coal = ctr->getGPUCoalescer();
> if (coal != NULL) {
> m_outstandReqHistCoalsr.add(coal->getOutstandReqHist());
> }
288,290c380,382
< m_latencyHist.add(seq->getLatencyHist());
< m_hitLatencyHist.add(seq->getHitLatencyHist());
< m_missLatencyHist.add(seq->getMissLatencyHist());
---
> m_latencyHistSeqr.add(seq->getLatencyHist());
> m_hitLatencyHistSeqr.add(seq->getHitLatencyHist());
> m_missLatencyHistSeqr.add(seq->getMissLatencyHist());
294c386
< m_typeLatencyHist[j]
---
> m_typeLatencyHistSeqr[j]
296c388
< m_hitTypeLatencyHist[j]
---
> m_hitTypeLatencyHistSeqr[j]
298c390
< m_missTypeLatencyHist[j]
---
> m_missTypeLatencyHistSeqr[j]
304c396
< m_hitMachLatencyHist[j]
---
> m_hitMachLatencyHistSeqr[j]
306c398
< m_missMachLatencyHist[j]
---
> m_missMachLatencyHistSeqr[j]
309c401
< m_IssueToInitialDelayHist[j]->add(
---
> m_IssueToInitialDelayHistSeqr[j]->add(
312c404
< m_InitialToForwardDelayHist[j]->add(
---
> m_InitialToForwardDelayHistSeqr[j]->add(
314c406
< m_ForwardToFirstResponseDelayHist[j]->add(seq->
---
> m_ForwardToFirstResponseDelayHistSeqr[j]->add(seq->
317c409
< m_FirstResponseToCompletionDelayHist[j]->add(seq->
---
> m_FirstResponseToCompletionDelayHistSeqr[j]->add(seq->
320c412
< m_IncompleteTimes[j] +=
---
> m_IncompleteTimesSeqr[j] +=
327c419
< m_hitTypeMachLatencyHist[j][k]->add(
---
> m_hitTypeMachLatencyHistSeqr[j][k]->add(
329c421
< m_missTypeMachLatencyHist[j][k]->add(
---
> m_missTypeMachLatencyHistSeqr[j][k]->add(
333a426,466
>
> 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));
> }
> }
> }