diff options
author | Andreas Sandberg <andreas.sandberg@arm.com> | 2019-09-23 18:18:28 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2019-09-30 12:34:16 +0000 |
commit | a2286fe344f0fd6484f232329a56e9f07e2136de (patch) | |
tree | 968122748728e3ce45d5a0732bf59d9f4a93df97 /src/mem/coherent_xbar.cc | |
parent | 0d98a7170f50d07d737a6a78e32e6ac3021262ec (diff) | |
download | gem5-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.cc | 41 |
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 * |