summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel R. Carvalho <odanrc@yahoo.com.br>2019-12-12 11:05:25 +0100
committerDaniel Carvalho <odanrc@yahoo.com.br>2020-01-17 20:41:50 +0000
commit54a27b007ae0ddaf70e23d8543bf94be5ee73302 (patch)
tree53f99e80a44e6452a424520c6e1cdd9a58b7b3fb
parent6eabbd49ebe47f4ba77b75d5b3913cdf85401430 (diff)
downloadgem5-54a27b007ae0ddaf70e23d8543bf94be5ee73302.tar.xz
mem-cache: Add print function to ReplaceableEntry
Add a basic print function to acquire and display information about replaceable entries. Change-Id: I9640113d305fbe086c5bfaf8928a911bfcac50bb Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23567 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--src/mem/cache/cache_blk.hh7
-rw-r--r--src/mem/cache/replacement_policies/replaceable_entry.hh13
2 files changed, 17 insertions, 3 deletions
diff --git a/src/mem/cache/cache_blk.hh b/src/mem/cache/cache_blk.hh
index dce0ce434..42b8ebd25 100644
--- a/src/mem/cache/cache_blk.hh
+++ b/src/mem/cache/cache_blk.hh
@@ -345,7 +345,8 @@ class CacheBlk : public ReplaceableEntry
*
* @return string with basic state information
*/
- virtual std::string print() const
+ std::string
+ print() const override
{
/**
* state M O E S I
@@ -382,9 +383,9 @@ class CacheBlk : public ReplaceableEntry
default: s = 'T'; break; // @TODO add other types
}
return csprintf("state: %x (%c) valid: %d writable: %d readable: %d "
- "dirty: %d | tag: %#x set: %#x way: %#x", status, s,
+ "dirty: %d | tag: %#x %s", status, s,
isValid(), isWritable(), isReadable(), isDirty(), tag,
- getSet(), getWay());
+ ReplaceableEntry::print());
}
/**
diff --git a/src/mem/cache/replacement_policies/replaceable_entry.hh b/src/mem/cache/replacement_policies/replaceable_entry.hh
index 2b08749e4..9a59b1f2e 100644
--- a/src/mem/cache/replacement_policies/replaceable_entry.hh
+++ b/src/mem/cache/replacement_policies/replaceable_entry.hh
@@ -34,6 +34,8 @@
#include <cstdint>
#include <memory>
+#include "base/cprintf.hh"
+
/**
* The replacement data needed by replacement policies. Each replacement policy
* should have its own implementation of replacement data.
@@ -99,6 +101,17 @@ class ReplaceableEntry
* @return The way to which this entry belongs.
*/
uint32_t getWay() const { return _way; }
+
+ /**
+ * Prints relevant information about this entry.
+ *
+ * @return A string containg the contents of this entry.
+ */
+ virtual std::string
+ print() const
+ {
+ return csprintf("set: %#x way: %#x", getSet(), getWay());
+ }
};
#endif // __MEM_CACHE_REPLACEMENT_POLICIES_REPLACEABLE_ENTRY_HH_