changeset ec5f79b99ac3 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=ec5f79b99ac3
description:
        Config: Add support for restoring using a timing CPU
        Currently there is an assumption that restoration from a checkpoint will
        happen by first restoring to an atomic CPU and then switching to a 
timing
        CPU. This patch adds support for directly restoring to a timing CPU. It
        adds a new option '--restore-with-cpu' which is used to specify the type
        of CPU to which the checkpoint should be restored to. It defaults to
        'atomic' which was the case before.

diffstat:

 configs/common/Options.py    |   4 ++++
 configs/common/Simulation.py |  10 +++++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diffs (34 lines):

diff -r 5ca9dd977386 -r ec5f79b99ac3 configs/common/Options.py
--- a/configs/common/Options.py Wed Jan 11 13:48:48 2012 -0600
+++ b/configs/common/Options.py Wed Jan 11 13:50:18 2012 -0600
@@ -85,6 +85,10 @@
                   help="checkpoint at specified work end count")
 parser.add_option("--work-cpus-checkpoint-count", action="store", type="int",
                   help="checkpoint and exit when active cpu count is reached")
+parser.add_option("--restore-with-cpu", action="store", type="choice",
+                  default="atomic", choices = ["atomic", "timing",
+                                               "detailed", "inorder"],
+                  help = "cpu type for restoring from a checkpoint")
 
 
 # CPU Switching - default switch model goes from a checkpoint
diff -r 5ca9dd977386 -r ec5f79b99ac3 configs/common/Simulation.py
--- a/configs/common/Simulation.py      Wed Jan 11 13:48:48 2012 -0600
+++ b/configs/common/Simulation.py      Wed Jan 11 13:50:18 2012 -0600
@@ -60,7 +60,15 @@
     test_mem_mode = 'atomic'
 
     if not atomic:
-        if options.checkpoint_restore != None or options.fast_forward:
+        if options.checkpoint_restore != None:
+            if options.restore_with_cpu != options.cpu_type:
+                CPUClass = TmpClass
+                class TmpClass(AtomicSimpleCPU): pass
+            else:
+                if options.restore_with_cpu != "atomic":
+                    test_mem_mode = 'timing'
+
+        elif options.fast_forward:
             CPUClass = TmpClass
             class TmpClass(AtomicSimpleCPU): pass
         else:
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to