mem: Add Units to mem stats
[gem5.git] / src / mem / comm_monitor.cc
index 14df955c1b4336bfb8468cb41ef6fd7165b4ad53..dffc8d1f0caaeed4b419f163ecafca7164acaced 100644 (file)
 #include "debug/CommMonitor.hh"
 #include "sim/stats.hh"
 
-CommMonitor::CommMonitor(Params* params)
+CommMonitor::CommMonitor(const Params &params)
     : SimObject(params),
       memSidePort(name() + "-mem_side_port", *this),
       cpuSidePort(name() + "-cpu_side_port", *this),
       samplePeriodicEvent([this]{ samplePeriodic(); }, name()),
-      samplePeriodTicks(params->sample_period),
-      samplePeriod(params->sample_period / SimClock::Float::s),
+      samplePeriodTicks(params.sample_period),
+      samplePeriod(params.sample_period / SimClock::Float::s),
       stats(this, params)
 {
     DPRINTF(CommMonitor,
@@ -57,12 +57,6 @@ CommMonitor::CommMonitor(Params* params)
             name(), samplePeriodTicks, samplePeriod * 1E3);
 }
 
-CommMonitor*
-CommMonitorParams::create()
-{
-    return new CommMonitor(this);
-}
-
 void
 CommMonitor::init()
 {
@@ -103,72 +97,85 @@ CommMonitor::recvFunctionalSnoop(PacketPtr pkt)
 }
 
 CommMonitor::MonitorStats::MonitorStats(Stats::Group *parent,
-                                        const CommMonitorParams *params)
+                                        const CommMonitorParams &params)
     : Stats::Group(parent),
 
-      disableBurstLengthHists(params->disable_burst_length_hists),
-      ADD_STAT(readBurstLengthHist,
+      disableBurstLengthHists(params.disable_burst_length_hists),
+      ADD_STAT(readBurstLengthHist, UNIT_BYTE,
                "Histogram of burst lengths of transmitted packets"),
-      ADD_STAT(writeBurstLengthHist,
+      ADD_STAT(writeBurstLengthHist, UNIT_BYTE,
                "Histogram of burst lengths of transmitted packets"),
 
-      disableBandwidthHists(params->disable_bandwidth_hists),
+      disableBandwidthHists(params.disable_bandwidth_hists),
       readBytes(0),
       ADD_STAT(readBandwidthHist,
+               UNIT_RATE(Stats::Units::Byte, Stats::Units::Second),
                "Histogram of read bandwidth per sample period (bytes/s)"),
-      ADD_STAT(totalReadBytes, "Number of bytes read"),
-      ADD_STAT(averageReadBandwidth, "Average read bandwidth (bytes/s)",
+      ADD_STAT(totalReadBytes, UNIT_BYTE, "Number of bytes read"),
+      ADD_STAT(averageReadBandwidth,
+               UNIT_RATE(Stats::Units::Byte, Stats::Units::Second),
+               "Average read bandwidth (bytes/s)",
                totalReadBytes / simSeconds),
 
       writtenBytes(0),
-      ADD_STAT(writeBandwidthHist, "Histogram of write bandwidth (bytes/s)"),
-      ADD_STAT(totalWrittenBytes, "Number of bytes written"),
-      ADD_STAT(averageWriteBandwidth, "Average write bandwidth (bytes/s)",
+      ADD_STAT(writeBandwidthHist,
+               UNIT_RATE(Stats::Units::Byte, Stats::Units::Second),
+               "Histogram of write bandwidth (bytes/s)"),
+      ADD_STAT(totalWrittenBytes,
+               UNIT_RATE(Stats::Units::Byte, Stats::Units::Second),
+               "Number of bytes written"),
+      ADD_STAT(averageWriteBandwidth,
+               UNIT_RATE(Stats::Units::Byte, Stats::Units::Second),
+               "Average write bandwidth (bytes/s)",
                totalWrittenBytes / simSeconds),
 
-      disableLatencyHists(params->disable_latency_hists),
-      ADD_STAT(readLatencyHist, "Read request-response latency"),
-      ADD_STAT(writeLatencyHist, "Write request-response latency"),
+      disableLatencyHists(params.disable_latency_hists),
+      ADD_STAT(readLatencyHist, UNIT_TICK, "Read request-response latency"),
+      ADD_STAT(writeLatencyHist, UNIT_TICK, "Write request-response latency"),
 
-      disableITTDists(params->disable_itt_dists),
-      ADD_STAT(ittReadRead, "Read-to-read inter transaction time"),
-      ADD_STAT(ittWriteWrite , "Write-to-write inter transaction time"),
-      ADD_STAT(ittReqReq, "Request-to-request inter transaction time"),
+      disableITTDists(params.disable_itt_dists),
+      ADD_STAT(ittReadRead, UNIT_TICK, "Read-to-read inter transaction time"),
+      ADD_STAT(ittWriteWrite, UNIT_TICK,
+               "Write-to-write inter transaction time"),
+      ADD_STAT(ittReqReq, UNIT_TICK,
+               "Request-to-request inter transaction time"),
       timeOfLastRead(0), timeOfLastWrite(0), timeOfLastReq(0),
 
-      disableOutstandingHists(params->disable_outstanding_hists),
-      ADD_STAT(outstandingReadsHist, "Outstanding read transactions"),
+      disableOutstandingHists(params.disable_outstanding_hists),
+      ADD_STAT(outstandingReadsHist, UNIT_COUNT,
+               "Outstanding read transactions"),
       outstandingReadReqs(0),
-      ADD_STAT(outstandingWritesHist, "Outstanding write transactions"),
+      ADD_STAT(outstandingWritesHist, UNIT_COUNT,
+               "Outstanding write transactions"),
       outstandingWriteReqs(0),
 
-      disableTransactionHists(params->disable_transaction_hists),
-      ADD_STAT(readTransHist,
+      disableTransactionHists(params.disable_transaction_hists),
+      ADD_STAT(readTransHist, UNIT_COUNT,
                "Histogram of read transactions per sample period"),
       readTrans(0),
-      ADD_STAT(writeTransHist,
+      ADD_STAT(writeTransHist, UNIT_COUNT,
                "Histogram of write transactions per sample period"),
       writeTrans(0),
 
-      disableAddrDists(params->disable_addr_dists),
-      readAddrMask(params->read_addr_mask),
-      writeAddrMask(params->write_addr_mask),
-      ADD_STAT(readAddrDist, "Read address distribution"),
-      ADD_STAT(writeAddrDist, "Write address distribution")
+      disableAddrDists(params.disable_addr_dists),
+      readAddrMask(params.read_addr_mask),
+      writeAddrMask(params.write_addr_mask),
+      ADD_STAT(readAddrDist, UNIT_COUNT, "Read address distribution"),
+      ADD_STAT(writeAddrDist, UNIT_COUNT, "Write address distribution")
 {
     using namespace Stats;
 
     readBurstLengthHist
-        .init(params->burst_length_bins)
+        .init(params.burst_length_bins)
         .flags(disableBurstLengthHists ? nozero : pdf);
 
     writeBurstLengthHist
-        .init(params->burst_length_bins)
+        .init(params.burst_length_bins)
         .flags(disableBurstLengthHists ? nozero : pdf);
 
     // Stats based on received responses
     readBandwidthHist
-        .init(params->bandwidth_bins)
+        .init(params.bandwidth_bins)
         .flags(disableBandwidthHists ? nozero : pdf);
 
     averageReadBandwidth
@@ -179,7 +186,7 @@ CommMonitor::MonitorStats::MonitorStats(Stats::Group *parent,
 
     // Stats based on successfully sent requests
     writeBandwidthHist
-        .init(params->bandwidth_bins)
+        .init(params.bandwidth_bins)
         .flags(disableBandwidthHists ? (pdf | nozero) : pdf);
 
     averageWriteBandwidth
@@ -190,42 +197,42 @@ CommMonitor::MonitorStats::MonitorStats(Stats::Group *parent,
 
 
     readLatencyHist
-        .init(params->latency_bins)
+        .init(params.latency_bins)
         .flags(disableLatencyHists ? nozero : pdf);
 
     writeLatencyHist
-        .init(params->latency_bins)
+        .init(params.latency_bins)
         .flags(disableLatencyHists ? nozero : pdf);
 
     ittReadRead
-        .init(1, params->itt_max_bin, params->itt_max_bin /
-              params->itt_bins)
+        .init(1, params.itt_max_bin, params.itt_max_bin /
+              params.itt_bins)
         .flags(disableITTDists ? nozero : pdf);
 
     ittWriteWrite
-        .init(1, params->itt_max_bin, params->itt_max_bin /
-              params->itt_bins)
+        .init(1, params.itt_max_bin, params.itt_max_bin /
+              params.itt_bins)
         .flags(disableITTDists ? nozero : pdf);
 
     ittReqReq
-        .init(1, params->itt_max_bin, params->itt_max_bin /
-              params->itt_bins)
+        .init(1, params.itt_max_bin, params.itt_max_bin /
+              params.itt_bins)
         .flags(disableITTDists ? nozero : pdf);
 
     outstandingReadsHist
-        .init(params->outstanding_bins)
+        .init(params.outstanding_bins)
         .flags(disableOutstandingHists ? nozero : pdf);
 
     outstandingWritesHist
-        .init(params->outstanding_bins)
+        .init(params.outstanding_bins)
         .flags(disableOutstandingHists ? nozero : pdf);
 
     readTransHist
-        .init(params->transaction_bins)
+        .init(params.transaction_bins)
         .flags(disableTransactionHists ? nozero : pdf);
 
     writeTransHist
-        .init(params->transaction_bins)
+        .init(params.transaction_bins)
         .flags(disableTransactionHists ? nozero : pdf);
 
     readAddrDist