From: Daniel R. Carvalho Date: Mon, 3 Jun 2019 13:37:58 +0000 (+0200) Subject: mem-cache: Override print function of sector and super blocks X-Git-Tag: develop-gem5-snapshot~476 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=97a766100b3731a843158099ba40c4cad887da7a;p=gem5.git mem-cache: Override print function of sector and super blocks Pass management of printing sector and super block's contents to them. Change-Id: Ided8d404450a0fa39127ac7d2d6578d95691f509 Signed-off-by: Daniel R. Carvalho Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36582 Reviewed-by: Nikos Nikoleris Maintainer: Nikos Nikoleris Tested-by: kokoro --- diff --git a/src/mem/cache/tags/compressed_tags.cc b/src/mem/cache/tags/compressed_tags.cc index f71dedacd..33d822a55 100644 --- a/src/mem/cache/tags/compressed_tags.cc +++ b/src/mem/cache/tags/compressed_tags.cc @@ -150,12 +150,8 @@ CompressedTags::findVictim(Addr addr, const bool is_secure, assert(!victim->isValid()); // Print all co-allocated blocks - DPRINTF(CacheComp, "Co-Allocation: offset %d with blocks\n", offset); - for (const auto& blk : victim_superblock->blks){ - if (blk->isValid()) { - DPRINTFR(CacheComp, "\t[%s]\n", blk->print()); - } - } + DPRINTF(CacheComp, "Co-Allocation: offset %d of %s\n", offset, + victim_superblock->print()); } // Update number of sub-blocks evicted due to a replacement diff --git a/src/mem/cache/tags/sector_blk.cc b/src/mem/cache/tags/sector_blk.cc index f738e0222..c1c5f6aaf 100644 --- a/src/mem/cache/tags/sector_blk.cc +++ b/src/mem/cache/tags/sector_blk.cc @@ -150,3 +150,16 @@ SectorBlk::setPosition(const uint32_t set, const uint32_t way) blk->setPosition(set, way); } } + +std::string +SectorBlk::print() const +{ + std::string sub_blk_print; + for (const auto& sub_blk : blks) { + if (sub_blk->isValid()) { + sub_blk_print += "\t[" + sub_blk->print() + "]\n"; + } + } + return csprintf("%s valid sub-blks (%d):\n%s", + TaggedEntry::print(), getNumValid(), sub_blk_print); +} diff --git a/src/mem/cache/tags/sector_blk.hh b/src/mem/cache/tags/sector_blk.hh index 049f49b58..ba3245027 100644 --- a/src/mem/cache/tags/sector_blk.hh +++ b/src/mem/cache/tags/sector_blk.hh @@ -177,6 +177,13 @@ class SectorBlk : public TaggedEntry * @param way The way of this entry and sub-entries. */ void setPosition(const uint32_t set, const uint32_t way) override; + + /** + * Print relevant information for this sector block and its sub-blocks. + * + * @return A string with the contents of the sector block. + */ + std::string print() const override; }; #endif //__MEM_CACHE_TAGS_SECTOR_BLK_HH__ diff --git a/src/mem/cache/tags/super_blk.cc b/src/mem/cache/tags/super_blk.cc index d81cbc313..9a1de45cf 100644 --- a/src/mem/cache/tags/super_blk.cc +++ b/src/mem/cache/tags/super_blk.cc @@ -236,3 +236,9 @@ SuperBlk::setCompressionFactor(const uint8_t compression_factor) compressionFactor = compression_factor; } } + +std::string +SuperBlk::print() const +{ + return csprintf("CF: %d %s", getCompressionFactor(), SectorBlk::print()); +} diff --git a/src/mem/cache/tags/super_blk.hh b/src/mem/cache/tags/super_blk.hh index d98c14e19..64d73bdf0 100644 --- a/src/mem/cache/tags/super_blk.hh +++ b/src/mem/cache/tags/super_blk.hh @@ -236,6 +236,8 @@ class SuperBlk : public SectorBlk void setCompressionFactor(const uint8_t compression_factor); void invalidate() override; + + std::string print() const override; }; #endif //__MEM_CACHE_TAGS_SUPER_BLK_HH__