dev-arm,stats: Update stats style of src/dev/arm
[gem5.git] / src / dev / arm / ufs_device.cc
index f4114c11a91728225ac149912008f7c054a6fb9c..1406e4afc8992d5d731783fd41f4bb5e41ac12a1 100644 (file)
@@ -729,6 +729,7 @@ UFSHostDevice::UFSHostDevice(const UFSHostDeviceParams &p) :
     transferTrack(0),
     taskCommandTrack(0),
     idlePhaseStart(0),
+    stats(this),
     SCSIResumeEvent([this]{ SCSIStart(); }, name()),
     UTPEvent([this]{ finalUTP(); }, name())
 {
@@ -752,116 +753,97 @@ UFSHostDevice::UFSHostDevice(const UFSHostDeviceParams &p) :
     setValues();
 }
 
-void
-UFSHostDevice::regStats()
+UFSHostDevice::
+UFSHostDeviceStats::UFSHostDeviceStats(UFSHostDevice *parent)
+    : Stats::Group(parent, "UFSDiskHost"),
+      ADD_STAT(currentSCSIQueue,
+               "Most up to date length of the command queue"),
+      ADD_STAT(currentReadSSDQueue,
+               "Most up to date length of the read SSD queue"),
+      ADD_STAT(currentWriteSSDQueue,
+               "Most up to date length of the write SSD queue"),
+      /** Amount of data read/written */
+      ADD_STAT(totalReadSSD, "Number of bytes read from SSD"),
+      ADD_STAT(totalWrittenSSD, "Number of bytes written to SSD"),
+      ADD_STAT(totalReadDiskTransactions,"Number of transactions from disk"),
+      ADD_STAT(totalWriteDiskTransactions, "Number of transactions to disk"),
+      ADD_STAT(totalReadUFSTransactions, "Number of transactions from device"),
+      ADD_STAT(totalWriteUFSTransactions, "Number of transactions to device"),
+      /** Average bandwidth for reads and writes */
+      ADD_STAT(averageReadSSDBW, "Average read bandwidth (bytes/s)",
+               totalReadSSD / simSeconds),
+      ADD_STAT(averageWriteSSDBW, "Average write bandwidth (bytes/s)",
+               totalWrittenSSD / simSeconds),
+      ADD_STAT(averageSCSIQueue, "Average command queue length"),
+      ADD_STAT(averageReadSSDQueue, "Average read queue length"),
+      ADD_STAT(averageWriteSSDQueue, "Average write queue length"),
+      /** Number of doorbells rung*/
+      ADD_STAT(curDoorbell, "Most up to date number of doorbells used",
+               parent->activeDoorbells),
+      ADD_STAT(maxDoorbell, "Maximum number of doorbells utilized"),
+      ADD_STAT(averageDoorbell, "Average number of Doorbells used"),
+      /** Latency*/
+      ADD_STAT(transactionLatency, "Histogram of transaction times"),
+      ADD_STAT(idleTimes, "Histogram of idle times")
 {
-    DmaDevice::regStats();
-
     using namespace Stats;
 
-    std::string UFSHost_name = name() + ".UFSDiskHost";
-
     // Register the stats
     /** Queue lengths */
-    stats.currentSCSIQueue
-        .name(UFSHost_name + ".currentSCSIQueue")
-        .desc("Most up to date length of the command queue")
+    currentSCSIQueue
         .flags(none);
-    stats.currentReadSSDQueue
-        .name(UFSHost_name + ".currentReadSSDQueue")
-        .desc("Most up to date length of the read SSD queue")
+    currentReadSSDQueue
         .flags(none);
-    stats.currentWriteSSDQueue
-        .name(UFSHost_name + ".currentWriteSSDQueue")
-        .desc("Most up to date length of the write SSD queue")
+    currentWriteSSDQueue
         .flags(none);
 
     /** Amount of data read/written */
-    stats.totalReadSSD
-        .name(UFSHost_name + ".totalReadSSD")
-        .desc("Number of bytes read from SSD")
+    totalReadSSD
         .flags(none);
 
-    stats.totalWrittenSSD
-        .name(UFSHost_name + ".totalWrittenSSD")
-        .desc("Number of bytes written to SSD")
+    totalWrittenSSD
         .flags(none);
 
-    stats.totalReadDiskTransactions
-        .name(UFSHost_name + ".totalReadDiskTransactions")
-        .desc("Number of transactions from disk")
+    totalReadDiskTransactions
         .flags(none);
-    stats.totalWriteDiskTransactions
-        .name(UFSHost_name + ".totalWriteDiskTransactions")
-        .desc("Number of transactions to disk")
+    totalWriteDiskTransactions
         .flags(none);
-    stats.totalReadUFSTransactions
-        .name(UFSHost_name + ".totalReadUFSTransactions")
-        .desc("Number of transactions from device")
+    totalReadUFSTransactions
         .flags(none);
-    stats.totalWriteUFSTransactions
-        .name(UFSHost_name + ".totalWriteUFSTransactions")
-        .desc("Number of transactions to device")
+    totalWriteUFSTransactions
         .flags(none);
 
     /** Average bandwidth for reads and writes */
-    stats.averageReadSSDBW
-        .name(UFSHost_name + ".averageReadSSDBandwidth")
-        .desc("Average read bandwidth (bytes/s)")
+    averageReadSSDBW
         .flags(nozero);
 
-    stats.averageReadSSDBW = stats.totalReadSSD / simSeconds;
-
-    stats.averageWriteSSDBW
-        .name(UFSHost_name + ".averageWriteSSDBandwidth")
-        .desc("Average write bandwidth (bytes/s)")
+    averageWriteSSDBW
         .flags(nozero);
 
-    stats.averageWriteSSDBW = stats.totalWrittenSSD / simSeconds;
-
-    stats.averageSCSIQueue
-        .name(UFSHost_name + ".averageSCSIQueueLength")
-        .desc("Average command queue length")
+    averageSCSIQueue
         .flags(nozero);
-    stats.averageReadSSDQueue
-        .name(UFSHost_name + ".averageReadSSDQueueLength")
-        .desc("Average read queue length")
+    averageReadSSDQueue
         .flags(nozero);
-    stats.averageWriteSSDQueue
-        .name(UFSHost_name + ".averageWriteSSDQueueLength")
-        .desc("Average write queue length")
+    averageWriteSSDQueue
         .flags(nozero);
 
     /** Number of doorbells rung*/
-    stats.curDoorbell
-        .name(UFSHost_name + ".curDoorbell")
-        .desc("Most up to date number of doorbells used")
+    curDoorbell
         .flags(none);
 
-    stats.curDoorbell = activeDoorbells;
-
-    stats.maxDoorbell
-        .name(UFSHost_name + ".maxDoorbell")
-        .desc("Maximum number of doorbells utilized")
+    maxDoorbell
         .flags(none);
-    stats.averageDoorbell
-        .name(UFSHost_name + ".averageDoorbell")
-        .desc("Average number of Doorbells used")
+    averageDoorbell
         .flags(nozero);
 
     /** Latency*/
-    stats.transactionLatency
+    transactionLatency
         .init(100)
-        .name(UFSHost_name + ".transactionLatency")
-        .desc("Histogram of transaction times")
         .flags(pdf);
 
-    stats.idleTimes
+    idleTimes
         .init(100)
-        .name(UFSHost_name + ".idlePeriods")
-        .desc("Histogram of idle times")
         .flags(pdf);
-
 }
 
 /**