mem-cache: Add stats for failed compressions
Add statistics to keep track of the number of times compression has failed to provide blocks whose compressed size passes the size threshold. Also, update the compressed data's size if compression fails. Change-Id: If3479572bf114f07911238c602ffef3a90b6a931 Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33384 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Daniel Carvalho
parent
53ef7c1e6c
commit
bc92a06cf5
3
src/mem/cache/compressors/base.cc
vendored
3
src/mem/cache/compressors/base.cc
vendored
@@ -148,6 +148,7 @@ Base::compress(const uint64_t* data, Cycles& comp_lat, Cycles& decomp_lat)
|
||||
if (comp_size_bits > sizeThreshold * CHAR_BIT) {
|
||||
comp_size_bits = blkSize * CHAR_BIT;
|
||||
comp_data->setSizeBits(comp_size_bits);
|
||||
stats.failedCompressions++;
|
||||
}
|
||||
|
||||
// Update stats
|
||||
@@ -209,6 +210,8 @@ Base::BaseStats::BaseStats(Base& _compressor)
|
||||
: Stats::Group(&_compressor), compressor(_compressor),
|
||||
compressions(this, "compressions",
|
||||
"Total number of compressions"),
|
||||
failedCompressions(this, "failed_compressions",
|
||||
"Total number of failed compressions"),
|
||||
compressionSize(this, "compression_size",
|
||||
"Number of blocks that were compressed to this power of two size"),
|
||||
compressionSizeBits(this, "compression_size_bits",
|
||||
|
||||
3
src/mem/cache/compressors/base.hh
vendored
3
src/mem/cache/compressors/base.hh
vendored
@@ -106,6 +106,9 @@ class Base : public SimObject
|
||||
/** Number of compressions performed. */
|
||||
Stats::Scalar compressions;
|
||||
|
||||
/** Number of failed compressions. */
|
||||
Stats::Scalar failedCompressions;
|
||||
|
||||
/** Number of blocks that were compressed to this power of two size. */
|
||||
Stats::Vector compressionSize;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user