summaryrefslogtreecommitdiff
path: root/src/mem/coherent_xbar.cc
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2019-09-23 18:18:28 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2019-09-30 12:34:16 +0000
commita2286fe344f0fd6484f232329a56e9f07e2136de (patch)
tree968122748728e3ce45d5a0732bf59d9f4a93df97 /src/mem/coherent_xbar.cc
parent0d98a7170f50d07d737a6a78e32e6ac3021262ec (diff)
downloadgem5-a2286fe344f0fd6484f232329a56e9f07e2136de.tar.xz
mem: Use new-style stats in the XBar models
Migrate to new-world stats with an explicit hierarchy in all of the XBar models. Change-Id: I18b6746a1303ca415638e6d382fb4757607f1123 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21141 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to 'src/mem/coherent_xbar.cc')
-rw-r--r--src/mem/coherent_xbar.cc41
1 files changed, 12 insertions, 29 deletions
diff --git a/src/mem/coherent_xbar.cc b/src/mem/coherent_xbar.cc
index a339500a8..713c6421b 100644
--- a/src/mem/coherent_xbar.cc
+++ b/src/mem/coherent_xbar.cc
@@ -62,7 +62,11 @@ CoherentXBar::CoherentXBar(const CoherentXBarParams *p)
maxOutstandingSnoopCheck(p->max_outstanding_snoops),
maxRoutingTableSizeCheck(p->max_routing_table_size),
pointOfCoherency(p->point_of_coherency),
- pointOfUnification(p->point_of_unification)
+ pointOfUnification(p->point_of_unification),
+
+ snoops(this, "snoops", "Total snoops (count)"),
+ snoopTraffic(this, "snoopTraffic", "Total snoop traffic (bytes)"),
+ snoopFanout(this, "snoop_fanout", "Request fanout histogram")
{
// create the ports based on the size of the master and slave
// vector ports, and the presence of the default port, the ports
@@ -72,9 +76,9 @@ CoherentXBar::CoherentXBar(const CoherentXBarParams *p)
MasterPort* bp = new CoherentXBarMasterPort(portName, *this, i);
masterPorts.push_back(bp);
reqLayers.push_back(new ReqLayer(*bp, *this,
- csprintf(".reqLayer%d", i)));
+ csprintf("reqLayer%d", i)));
snoopLayers.push_back(
- new SnoopRespLayer(*bp, *this, csprintf(".snoopLayer%d", i)));
+ new SnoopRespLayer(*bp, *this, csprintf("snoopLayer%d", i)));
}
// see if we have a default slave device connected and if so add
@@ -85,10 +89,10 @@ CoherentXBar::CoherentXBar(const CoherentXBarParams *p)
MasterPort* bp = new CoherentXBarMasterPort(portName, *this,
defaultPortID);
masterPorts.push_back(bp);
- reqLayers.push_back(new ReqLayer(*bp, *this, csprintf(".reqLayer%d",
+ reqLayers.push_back(new ReqLayer(*bp, *this, csprintf("reqLayer%d",
defaultPortID)));
snoopLayers.push_back(new SnoopRespLayer(*bp, *this,
- csprintf(".snoopLayer%d",
+ csprintf("snoopLayer%d",
defaultPortID)));
}
@@ -98,7 +102,7 @@ CoherentXBar::CoherentXBar(const CoherentXBarParams *p)
QueuedSlavePort* bp = new CoherentXBarSlavePort(portName, *this, i);
slavePorts.push_back(bp);
respLayers.push_back(new RespLayer(*bp, *this,
- csprintf(".respLayer%d", i)));
+ csprintf("respLayer%d", i)));
snoopRespPorts.push_back(new SnoopRespPort(*bp, *this));
}
}
@@ -1104,30 +1108,9 @@ CoherentXBar::forwardPacket(const PacketPtr pkt)
void
CoherentXBar::regStats()
{
- // register the stats of the base class and our layers
BaseXBar::regStats();
- for (auto l: reqLayers)
- l->regStats();
- for (auto l: respLayers)
- l->regStats();
- for (auto l: snoopLayers)
- l->regStats();
-
- snoops
- .name(name() + ".snoops")
- .desc("Total snoops (count)")
- ;
-
- snoopTraffic
- .name(name() + ".snoopTraffic")
- .desc("Total snoop traffic (bytes)")
- ;
-
- snoopFanout
- .init(0, snoopPorts.size(), 1)
- .name(name() + ".snoop_fanout")
- .desc("Request fanout histogram")
- ;
+
+ snoopFanout.init(0, snoopPorts.size(), 1);
}
CoherentXBar *