mem-cache: Fix priority of multi compressor

The priority queue comparator orders such that false gives the
entry a higher priority. Therefore, if it is desired to make
the entry with lowest decompression latency have higher priority,
the comparison must be inverted.

Can be tested with:
  MultiCompressor(compressors=[
    PerfectCompressor(decompression_latency=1),
    PerfectCompressor(decompression_latency=2)])

Where it is expected that compressor0 (the one with decomp lat
of 1) is always chosen.

Change-Id: I44acbf5f51c6e47efdd2a16fba9596935cf2eb69
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28367
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-05 23:24:08 +02:00
committed by Daniel Carvalho
parent 81c359b50f
commit 73c8c72e40

View File

@@ -103,7 +103,7 @@ MultiCompressor::compress(const uint64_t* cache_line, Cycles& comp_lat,
if (lhs_cf == rhs_cf) {
// When they have similar compressed sizes, give the one
// with fastest decompression privilege
return lhs->decompLat < rhs->decompLat;
return lhs->decompLat > rhs->decompLat;
}
return lhs_cf < rhs_cf;
}