From 928c5807db668bbc8aec826972cfcb75d38a14c3 Mon Sep 17 00:00:00 2001 From: Mingyuan Xiang Date: Sun, 13 Oct 2019 08:02:27 +0000 Subject: [PATCH] mem-ruby: Add RubyHitMiss debug flags to print hit and miss information Add RubyHitMiss debug flags to print hit and miss information. This can be used to test the replacement policies by the traffic generator. Change-Id: If9fe42c37e09be0534077fbf912d8699debd80fd Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21719 Tested-by: kokoro Reviewed-by: Jason Lowe-Power Maintainer: Matt Sinclair --- src/mem/ruby/SConscript | 3 ++- src/mem/ruby/system/Sequencer.cc | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mem/ruby/SConscript b/src/mem/ruby/SConscript index 5062efd64d..1e386f922d 100644 --- a/src/mem/ruby/SConscript +++ b/src/mem/ruby/SConscript @@ -68,11 +68,12 @@ DebugFlag('RubyTester') DebugFlag('RubyStats') DebugFlag('RubyResourceStalls') DebugFlag('RubyProtocol') +DebugFlag('RubyHitMiss') CompoundFlag('Ruby', [ 'RubyQueue', 'RubyNetwork', 'RubyTester', 'RubyGenerated', 'RubySlicc', 'RubySystem', 'RubyCache', 'RubyDma', 'RubyPort', 'RubySequencer', 'RubyCacheTrace', - 'RubyPrefetcher', 'RubyProtocol']) + 'RubyPrefetcher', 'RubyProtocol', 'RubyHitMiss']) # # Link includes diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc index 601e23aed8..32b9dfc69f 100644 --- a/src/mem/ruby/system/Sequencer.cc +++ b/src/mem/ruby/system/Sequencer.cc @@ -48,6 +48,7 @@ #include "debug/LLSC.hh" #include "debug/MemoryAccess.hh" #include "debug/ProtocolTrace.hh" +#include "debug/RubyHitMiss.hh" #include "debug/RubySequencer.hh" #include "debug/RubyStats.hh" #include "mem/packet.hh" @@ -630,6 +631,10 @@ Sequencer::hitCallback(SequencerRequest* srequest, DataBlock& data, llscLoadLinked(line_addr); } + DPRINTF(RubyHitMiss, "Cache %s at %#x\n", + externalHit ? "miss" : "hit", + printAddress(request_address)); + // update the data unless it is a non-data-carrying flush if (RubySystem::getWarmupEnabled()) { data.setData(pkt);