Hoa Nguyen has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/36436 )

Change subject: dev,stats: Update stats style for CopyEngine and IdeDisk
......................................................................

dev,stats: Update stats style for CopyEngine and IdeDisk

Change-Id: Ib757b00864bc144b20adef974e3443ddba2945f0
Signed-off-by: Hoa Nguyen <hoangu...@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36436
Reviewed-by: Gabe Black <gabe.bl...@gmail.com>
Maintainer: Bobby R. Bruce <bbr...@ucdavis.edu>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/dev/pci/copy_engine.cc
M src/dev/pci/copy_engine.hh
M src/dev/storage/ide_disk.cc
M src/dev/storage/ide_disk.hh
4 files changed, 50 insertions(+), 67 deletions(-)

Approvals:
  Gabe Black: Looks good to me, approved
  Bobby R. Bruce: Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/dev/pci/copy_engine.cc b/src/dev/pci/copy_engine.cc
index 5673e63..02d3d86 100644
--- a/src/dev/pci/copy_engine.cc
+++ b/src/dev/pci/copy_engine.cc
@@ -58,7 +58,8 @@
 using namespace CopyEngineReg;

 CopyEngine::CopyEngine(const Params &p)
-    : PciDevice(p)
+    : PciDevice(p),
+      copyEngineStats(this, p.ChanCnt)
 {
     // All Reg regs are initialized to 0 by default
     regs.chanCount = p.ChanCnt;
@@ -425,23 +426,20 @@
     }
 }

-void
-CopyEngine::regStats()
+CopyEngine::
+CopyEngineStats::CopyEngineStats(Stats::Group *parent,
+                                 const uint8_t &channel_count)
+    : Stats::Group(parent, "CopyEngine"),
+      ADD_STAT(bytesCopied, "Number of bytes copied by each engine"),
+ ADD_STAT(copiesProcessed, "Number of copies processed by each engine")
 {
-    PciDevice::regStats();
-
-    using namespace Stats;
     bytesCopied
-        .init(regs.chanCount)
-        .name(name() + ".bytes_copied")
-        .desc("Number of bytes copied by each engine")
-        .flags(total)
+        .init(channel_count)
+        .flags(Stats::total)
         ;
     copiesProcessed
-        .init(regs.chanCount)
-        .name(name() + ".copies_processed")
-        .desc("Number of copies processed by each engine")
-        .flags(total)
+        .init(channel_count)
+        .flags(Stats::total)
         ;
 }

@@ -521,8 +519,8 @@
     cePort.dmaAction(MemCmd::WriteReq, ce->pciToDma(curDmaDesc->dest),
                      curDmaDesc->len, &writeCompleteEvent, copyBuffer, 0);

-    ce->bytesCopied[channelId] += curDmaDesc->len;
-    ce->copiesProcessed[channelId]++;
+    ce->copyEngineStats.bytesCopied[channelId] += curDmaDesc->len;
+    ce->copyEngineStats.copiesProcessed[channelId]++;
 }

 void
diff --git a/src/dev/pci/copy_engine.hh b/src/dev/pci/copy_engine.hh
index ec3c453..17d0eb8 100644
--- a/src/dev/pci/copy_engine.hh
+++ b/src/dev/pci/copy_engine.hh
@@ -139,8 +139,13 @@

   private:

-    Stats::Vector bytesCopied;
-    Stats::Vector copiesProcessed;
+    struct CopyEngineStats : public Stats::Group
+    {
+ CopyEngineStats(Stats::Group *parent, const uint8_t& channel_count);
+
+        Stats::Vector bytesCopied;
+        Stats::Vector copiesProcessed;
+    } copyEngineStats;

     // device registers
     CopyEngineReg::Regs regs;
@@ -158,8 +163,6 @@
     CopyEngine(const Params &params);
     ~CopyEngine();

-    void regStats() override;
-
     Port &getPort(const std::string &if_name,
             PortID idx = InvalidPortID) override;

diff --git a/src/dev/storage/ide_disk.cc b/src/dev/storage/ide_disk.cc
index 3f29775..808c705 100644
--- a/src/dev/storage/ide_disk.cc
+++ b/src/dev/storage/ide_disk.cc
@@ -60,6 +60,7 @@

 IdeDisk::IdeDisk(const Params &p)
     : SimObject(p), ctrl(NULL), image(p.image), diskDelay(p.delay),
+      ideDiskStats(this),
       dmaTransferEvent([this]{ doDmaTransfer(); }, name()),
       dmaReadCG(NULL),
       dmaReadWaitEvent([this]{ doDmaRead(); }, name()),
@@ -386,37 +387,18 @@
     schedule(dmaReadWaitEvent, curTick() + totalDiskDelay);
 }

-void
-IdeDisk::regStats()
+IdeDisk::
+IdeDiskStats::IdeDiskStats(Stats::Group *parent)
+    : Stats::Group(parent, "IdeDisk"),
+      ADD_STAT(dmaReadFullPages,
+               "Number of full page size DMA reads (not PRD)."),
+      ADD_STAT(dmaReadBytes,
+               "Number of bytes transfered via DMA reads (not PRD)."),
+      ADD_STAT(dmaReadTxs, "Number of DMA read transactions (not PRD)."),
+      ADD_STAT(dmaWriteFullPages, "Number of full page size DMA writes."),
+ ADD_STAT(dmaWriteBytes, "Number of bytes transfered via DMA writes."),
+      ADD_STAT(dmaWriteTxs, "Number of DMA write transactions.")
 {
-    SimObject::regStats();
-
-    using namespace Stats;
-    dmaReadFullPages
-        .name(name() + ".dma_read_full_pages")
-        .desc("Number of full page size DMA reads (not PRD).")
-        ;
-    dmaReadBytes
-        .name(name() + ".dma_read_bytes")
-        .desc("Number of bytes transfered via DMA reads (not PRD).")
-        ;
-    dmaReadTxs
-        .name(name() + ".dma_read_txs")
-        .desc("Number of DMA read transactions (not PRD).")
-        ;
-
-    dmaWriteFullPages
-        .name(name() + ".dma_write_full_pages")
-        .desc("Number of full page size DMA writes.")
-        ;
-    dmaWriteBytes
-        .name(name() + ".dma_write_bytes")
-        .desc("Number of bytes transfered via DMA writes.")
-        ;
-    dmaWriteTxs
-        .name(name() + ".dma_write_txs")
-        .desc("Number of DMA write transactions.")
-        ;
 }

 void
@@ -445,10 +427,10 @@
         assert(dmaReadCG->complete() < MAX_DMA_SIZE);
         ctrl->dmaRead(pciToDma(dmaReadCG->addr()), dmaReadCG->size(),
                 &dmaReadWaitEvent, dataBuffer + dmaReadCG->complete());
-        dmaReadBytes += dmaReadCG->size();
-        dmaReadTxs++;
+        ideDiskStats.dmaReadBytes += dmaReadCG->size();
+        ideDiskStats.dmaReadTxs++;
         if (dmaReadCG->size() == chunkBytes)
-            dmaReadFullPages++;
+            ideDiskStats.dmaReadFullPages++;
         dmaReadCG->next();
     } else {
         assert(dmaReadCG->done());
@@ -530,10 +512,10 @@
                 &dmaWriteWaitEvent, dataBuffer + dmaWriteCG->complete());
DPRINTF(IdeDisk, "doDmaWrite: not done curPrd byte count %d, eot %#x\n",
                 curPrd.getByteCount(), curPrd.getEOT());
-        dmaWriteBytes += dmaWriteCG->size();
-        dmaWriteTxs++;
+        ideDiskStats.dmaWriteBytes += dmaWriteCG->size();
+        ideDiskStats.dmaWriteTxs++;
         if (dmaWriteCG->size() == chunkBytes)
-            dmaWriteFullPages++;
+            ideDiskStats.dmaWriteFullPages++;
         dmaWriteCG->next();
     } else {
DPRINTF(IdeDisk, "doDmaWrite: done curPrd byte count %d, eot %#x\n",
diff --git a/src/dev/storage/ide_disk.hh b/src/dev/storage/ide_disk.hh
index ba2bad2..a0e02ce 100644
--- a/src/dev/storage/ide_disk.hh
+++ b/src/dev/storage/ide_disk.hh
@@ -252,12 +252,17 @@
     /** DMA Aborted */
     bool dmaAborted;

-    Stats::Scalar dmaReadFullPages;
-    Stats::Scalar dmaReadBytes;
-    Stats::Scalar dmaReadTxs;
-    Stats::Scalar dmaWriteFullPages;
-    Stats::Scalar dmaWriteBytes;
-    Stats::Scalar dmaWriteTxs;
+    struct IdeDiskStats : public Stats::Group
+    {
+        IdeDiskStats(Stats::Group *parent);
+
+        Stats::Scalar dmaReadFullPages;
+        Stats::Scalar dmaReadBytes;
+        Stats::Scalar dmaReadTxs;
+        Stats::Scalar dmaWriteFullPages;
+        Stats::Scalar dmaWriteBytes;
+        Stats::Scalar dmaWriteTxs;
+    } ideDiskStats;

   public:
     typedef IdeDiskParams Params;
@@ -274,11 +279,6 @@
     void reset(int id);

     /**
-     * Register Statistics
-     */
-    void regStats() override;
-
-    /**
      * Set the controller for this device
      * @param c The IDE controller
      */

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/36436
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ib757b00864bc144b20adef974e3443ddba2945f0
Gerrit-Change-Number: 36436
Gerrit-PatchSet: 20
Gerrit-Owner: Hoa Nguyen <hoangu...@ucdavis.edu>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-Reviewer: Bobby R. Bruce <bbr...@ucdavis.edu>
Gerrit-Reviewer: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Hoa Nguyen <hoangu...@ucdavis.edu>
Gerrit-Reviewer: Jason Lowe-Power <power...@gmail.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to