changeset 8149b36b8803 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=8149b36b8803
description:
        config: Update memtest to stress test cache clusivity

        This patch adds an new twist to the memtest cache hierarchy, in that
        it switches from mostly inclusive to mostly exclusive at every level
        in the tree. This has helped weed out plenty issues, and serves as a
        good stress tests.

diffstat:

 configs/example/memtest.py |  11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diffs (28 lines):

diff -r f8fdd931e674 -r 8149b36b8803 configs/example/memtest.py
--- a/configs/example/memtest.py        Fri Nov 06 03:26:41 2015 -0500
+++ b/configs/example/memtest.py        Fri Nov 06 03:26:42 2015 -0500
@@ -177,7 +177,7 @@
 # Define a prototype L1 cache that we scale for all successive levels
 proto_l1 = Cache(size = '32kB', assoc = 4,
                  hit_latency = 1, response_latency = 1,
-                 tgts_per_mshr = 8)
+                 tgts_per_mshr = 8, clusivity = 'mostly_incl')
 
 if options.blocking:
      proto_l1.mshrs = 1
@@ -197,6 +197,15 @@
      next.response_latency = prev.response_latency * 10
      next.assoc = prev.assoc * scale
      next.mshrs = prev.mshrs * scale
+
+     # Swap the inclusivity/exclusivity at each level. L2 is mostly
+     # exclusive with respect to L1, L3 mostly inclusive, L4 mostly
+     # exclusive etc.
+     if (prev.clusivity.value == 'mostly_incl'):
+          next.clusivity = 'mostly_excl'
+     else:
+          next.clusivity = 'mostly_incl'
+
      cache_proto.insert(0, next)
 
 # Make a prototype for the tester to be used throughout
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to