Hoa Nguyen has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/36476 )

Change subject: mem,stats: Update stats style for mem/probes and mem/qos
......................................................................

mem,stats: Update stats style for mem/probes and mem/qos

Change-Id: I47a094eb8fc56ef998ec3c971dab68ba39b092e3
Signed-off-by: Hoa Nguyen <[email protected]>
---
M src/mem/probes/mem_footprint.cc
M src/mem/probes/mem_footprint.hh
M src/mem/probes/stack_dist.cc
M src/mem/probes/stack_dist.hh
4 files changed, 68 insertions(+), 71 deletions(-)



diff --git a/src/mem/probes/mem_footprint.cc b/src/mem/probes/mem_footprint.cc
index eb684a7..09305e0 100644
--- a/src/mem/probes/mem_footprint.cc
+++ b/src/mem/probes/mem_footprint.cc
@@ -51,7 +51,8 @@
       cacheLinesAll(),
       pages(),
       pagesAll(),
-      system(p.system)
+      system(p.system),
+      memFootprintProbeStats(this)
 {
     fatal_if(!isPowerOf2(system->cacheLineSize()),
              "MemFootprintProbe expects cache line size is power of 2.");
@@ -59,30 +60,24 @@
"MemFootprintProbe expects page size parameter is power of 2");
 }

-void
-MemFootprintProbe::regStats()
+MemFootprintProbe::
+MemFootprintProbeStats::MemFootprintProbeStats(MemFootprintProbe *parent)
+    : Stats::Group(parent, "MemFootprintProbe"),
+      ADD_STAT(fpCacheLine, "Memory footprint at cache line granularity"),
+      ADD_STAT(fpCacheLineTotal, "Total memory footprint at cache line "
+                                 "granularity since simulation begin"),
+      ADD_STAT(fpPage, "Memory footprint at page granularity"),
+ ADD_STAT(fpPageTotal, "Total memory footprint at page granularity since "
+                            "simulation begin")
 {
-    BaseMemProbe::regStats();
-
     using namespace Stats;
     // clang-format off
-    fpCacheLine.name(name() + ".cacheline")
-        .desc("Memory footprint at cache line granularity")
-        .flags(nozero | nonan);
-    fpCacheLineTotal.name(name() + ".cacheline_total")
-        .desc("Total memory footprint at cache line granularity since "
-              "simulation begin")
-        .flags(nozero | nonan);
-    fpPage.name(name() + ".page")
-        .desc("Memory footprint at page granularity")
-        .flags(nozero | nonan);
-    fpPageTotal.name(name() + ".page_total")
- .desc("Total memory footprint at page granularity since simulation "
-              "begin")
-        .flags(nozero | nonan);
+    fpCacheLine.flags(nozero | nonan);
+    fpCacheLineTotal.flags(nozero | nonan);
+    fpPage.flags(nozero | nonan);
+    fpPageTotal.flags(nozero | nonan);
     // clang-format on
-
-    registerResetCallback([this]() { statReset(); });
+    registerResetCallback([parent]() { parent->statReset(); });
 }

 void
@@ -108,10 +103,11 @@
     assert(cacheLines.size() <= cacheLinesAll.size());
     assert(pages.size() <= pagesAll.size());

-    fpCacheLine = cacheLines.size() << cacheLineSizeLg2;
-    fpCacheLineTotal = cacheLinesAll.size() << cacheLineSizeLg2;
-    fpPage = pages.size() << pageSizeLg2;
-    fpPageTotal = pagesAll.size() << pageSizeLg2;
+ memFootprintProbeStats.fpCacheLine = cacheLines.size() << cacheLineSizeLg2;
+    memFootprintProbeStats.fpCacheLineTotal
+ = cacheLinesAll.size() << cacheLineSizeLg2;
+    memFootprintProbeStats.fpPage = pages.size() << pageSizeLg2;
+    memFootprintProbeStats.fpPageTotal = pagesAll.size() << pageSizeLg2;
 }

 void
diff --git a/src/mem/probes/mem_footprint.hh b/src/mem/probes/mem_footprint.hh
index 71438c0..5678806 100644
--- a/src/mem/probes/mem_footprint.hh
+++ b/src/mem/probes/mem_footprint.hh
@@ -57,7 +57,6 @@
     typedef std::unordered_set<Addr> AddrSet;

     MemFootprintProbe(const MemFootprintProbeParams &p);
-    void regStats() override;
     // Fix footprint tracking state on stat reset
     void statReset();

@@ -72,14 +71,18 @@
     void insertAddr(Addr addr, AddrSet *set, uint64_t limit);
     void handleRequest(const ProbePoints::PacketInfo &pkt_info) override;

-    /// Footprint at cache line size granularity
-    Stats::Scalar fpCacheLine;
-    /// Footprint at cache line size granularity, since simulation begin
-    Stats::Scalar fpCacheLineTotal;
-    /// Footprint at page granularity
-    Stats::Scalar fpPage;
-    /// Footprint at page granularity, since simulation begin
-    Stats::Scalar fpPageTotal;
+    struct MemFootprintProbeStats : public Stats::Group {
+      MemFootprintProbeStats(MemFootprintProbe *parent);
+
+      /// Footprint at cache line size granularity
+      Stats::Scalar fpCacheLine;
+      /// Footprint at cache line size granularity, since simulation begin
+      Stats::Scalar fpCacheLineTotal;
+      /// Footprint at page granularity
+      Stats::Scalar fpPage;
+      /// Footprint at page granularity, since simulation begin
+      Stats::Scalar fpPageTotal;
+    };

     // Addr set to track unique cache lines accessed
     AddrSet cacheLines;
@@ -90,6 +93,8 @@
     // Addr set to track unique pages accessed since simulation begin
     AddrSet pagesAll;
     System *system;
+
+    MemFootprintProbeStats memFootprintProbeStats;
 };

 #endif  //__MEM_PROBES_MEM_FOOTPRINT_HH__
diff --git a/src/mem/probes/stack_dist.cc b/src/mem/probes/stack_dist.cc
index ec2be98..664093d 100644
--- a/src/mem/probes/stack_dist.cc
+++ b/src/mem/probes/stack_dist.cc
@@ -45,6 +45,7 @@
       lineSize(p.line_size),
       disableLinearHists(p.disable_linear_hists),
       disableLogHists(p.disable_log_hists),
+      stackDistProbeStats(this),
       calc(p.verify)
 {
     fatal_if(p.system->cacheLineSize() > p.line_size,
@@ -52,43 +53,37 @@
              "larger or equal to the system's cahce line size.");
 }

-void
-StackDistProbe::regStats()
+StackDistProbe::
+StackDistProbeStats::StackDistProbeStats(StackDistProbe *parent)
+    : Stats::Group(parent, "StackDistProbe"),
+      ADD_STAT(readLinearHist, "Reads linear distribution"),
+      ADD_STAT(readLogHist, "Reads logarithmic distribution"),
+      ADD_STAT(writeLinearHist, "Writes linear distribution"),
+      ADD_STAT(writeLogHist, "Writes logarithmic distribution"),
+ ADD_STAT(infiniteSD, "Number of requests with infinite stack distance")
 {
-    BaseMemProbe::regStats();
+    using namespace Stats;

     const StackDistProbeParams &p =
-        dynamic_cast<const StackDistProbeParams &>(params());
-
-    using namespace Stats;
+        dynamic_cast<const StackDistProbeParams &>(parent->params());

     readLinearHist
         .init(p.linear_hist_bins)
-        .name(name() + ".readLinearHist")
-        .desc("Reads linear distribution")
-        .flags(disableLinearHists ? nozero : pdf);
+        .flags(parent->disableLinearHists ? nozero : pdf);

     readLogHist
         .init(p.log_hist_bins)
-        .name(name() + ".readLogHist")
-        .desc("Reads logarithmic distribution")
-        .flags(disableLogHists ? nozero : pdf);
+        .flags(parent->disableLogHists ? nozero : pdf);

     writeLinearHist
         .init(p.linear_hist_bins)
-        .name(name() + ".writeLinearHist")
-        .desc("Writes linear distribution")
-        .flags(disableLinearHists ? nozero : pdf);
+        .flags(parent->disableLinearHists ? nozero : pdf);

     writeLogHist
         .init(p.log_hist_bins)
-        .name(name() + ".writeLogHist")
-        .desc("Writes logarithmic distribution")
-        .flags(disableLogHists ? nozero : pdf);
+        .flags(parent->disableLogHists ? nozero : pdf);

     infiniteSD
-        .name(name() + ".infinity")
-        .desc("Number of requests with infinite stack distance")
         .flags(nozero);
 }

@@ -106,16 +101,16 @@
     // Calculate the stack distance
     const uint64_t sd(calc.calcStackDistAndUpdate(aligned_addr).first);
     if (sd == StackDistCalc::Infinity) {
-        infiniteSD++;
+        stackDistProbeStats.infiniteSD++;
         return;
     }

     // Sample the stack distance of the address in linear bins
     if (!disableLinearHists) {
         if (pkt_info.cmd.isRead())
-            readLinearHist.sample(sd);
+            stackDistProbeStats.readLinearHist.sample(sd);
         else
-            writeLinearHist.sample(sd);
+            stackDistProbeStats.writeLinearHist.sample(sd);
     }

     if (!disableLogHists) {
@@ -123,9 +118,9 @@

         // Sample the stack distance of the address in log bins
         if (pkt_info.cmd.isRead())
-            readLogHist.sample(sd_lg2);
+            stackDistProbeStats.readLogHist.sample(sd_lg2);
         else
-            writeLogHist.sample(sd_lg2);
+            stackDistProbeStats.writeLogHist.sample(sd_lg2);
     }
 }

diff --git a/src/mem/probes/stack_dist.hh b/src/mem/probes/stack_dist.hh
index 4a6ae54..2223616 100644
--- a/src/mem/probes/stack_dist.hh
+++ b/src/mem/probes/stack_dist.hh
@@ -50,8 +50,6 @@
   public:
     StackDistProbe(const StackDistProbeParams &params);

-    void regStats() override;
-
   protected:
     void handleRequest(const ProbePoints::PacketInfo &pkt_info) override;

@@ -66,21 +64,24 @@
     const bool disableLogHists;

   protected:
-    // Reads linear histogram
-    Stats::Histogram readLinearHist;
+    struct StackDistProbeStats : public Stats::Group {
+      StackDistProbeStats(StackDistProbe* parent);

-    // Reads logarithmic histogram
-    Stats::SparseHistogram readLogHist;
+      // Reads linear histogram
+      Stats::Histogram readLinearHist;

-    // Writes linear histogram
-    Stats::Histogram writeLinearHist;
+      // Reads logarithmic histogram
+      Stats::SparseHistogram readLogHist;

-    // Writes logarithmic histogram
-    Stats::SparseHistogram writeLogHist;
+      // Writes linear histogram
+      Stats::Histogram writeLinearHist;

-    // Writes logarithmic histogram
-    Stats::Scalar infiniteSD;
+      // Writes logarithmic histogram
+      Stats::SparseHistogram writeLogHist;

+      // Writes logarithmic histogram
+      Stats::Scalar infiniteSD;
+    } stackDistProbeStats;
   protected:
     StackDistCalc calc;
 };

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/36476
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: I47a094eb8fc56ef998ec3c971dab68ba39b092e3
Gerrit-Change-Number: 36476
Gerrit-PatchSet: 1
Gerrit-Owner: Hoa Nguyen <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to