changeset 2727a5a0aadc in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=2727a5a0aadc
description:
MOESI_hammer: fixed bug with single cpu + flushes, then modified the
regression tester to check this functionality
diffstat:
src/mem/protocol/MOESI_hammer-dir.sm | 6 +++---
tests/configs/rubytest-ruby.py | 8 +++++++-
2 files changed, 10 insertions(+), 4 deletions(-)
diffs (51 lines):
diff -r 1b2c17565ac8 -r 2727a5a0aadc src/mem/protocol/MOESI_hammer-dir.sm
--- a/src/mem/protocol/MOESI_hammer-dir.sm Fri Apr 06 13:47:06 2012 -0700
+++ b/src/mem/protocol/MOESI_hammer-dir.sm Fri Apr 06 13:47:06 2012 -0700
@@ -493,7 +493,7 @@
action(oc_sendBlockAck, "oc", desc="Send block ack to the owner") {
peek(requestQueue_in, RequestMsg) {
- if ((probe_filter_enabled || full_bit_dir_enabled) && (in_msg.Requestor
== cache_entry.Owner)) {
+ if (((probe_filter_enabled || full_bit_dir_enabled) &&
(in_msg.Requestor == cache_entry.Owner)) || machineCount(MachineType:L1Cache)
== 1) {
enqueue(forwardNetwork_out, RequestMsg,
latency=memory_controller_latency) {
out_msg.Address := address;
out_msg.Type := CoherenceRequestType:BLOCK_ACK;
@@ -1033,7 +1033,7 @@
}
action(nofc_forwardRequestConditionalOwner, "nofc", desc="Forward request to
one or more nodes if the requestor is not the owner") {
- assert(machineCount(MachineType:L1Cache) > 1);
+ if (machineCount(MachineType:L1Cache) > 1) {
if (probe_filter_enabled || full_bit_dir_enabled) {
peek(requestQueue_in, RequestMsg) {
@@ -1065,7 +1065,7 @@
}
}
}
-
+ }
}
action(f_forwardWriteFromDma, "fw", desc="Forward requests") {
diff -r 1b2c17565ac8 -r 2727a5a0aadc tests/configs/rubytest-ruby.py
--- a/tests/configs/rubytest-ruby.py Fri Apr 06 13:47:06 2012 -0700
+++ b/tests/configs/rubytest-ruby.py Fri Apr 06 13:47:06 2012 -0700
@@ -65,10 +65,16 @@
options.l2_assoc=2
options.l3_assoc=2
+# Turn on flush check for the hammer protocol
+check_flush = False
+if buildEnv['PROTOCOL'] == 'MOESI_hammer':
+ check_flush = True
+
#
# create the tester and system, including ruby
#
-tester = RubyTester(checks_to_complete = 100, wakeup_frequency = 10)
+tester = RubyTester(check_flush = check_flush, checks_to_complete = 100,
+ wakeup_frequency = 10)
system = System(tester = tester, physmem = SimpleMemory())
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev