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:
Daniel R. Carvalho
2020-04-02 22:35:53 +02:00
committed by Daniel Carvalho
parent 53ef7c1e6c
commit bc92a06cf5
2 changed files with 6 additions and 0 deletions

View File

@@ -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",

View File

@@ -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;