diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2012-01-11 13:50:18 -0600 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2012-01-11 13:50:18 -0600 |
commit | 03229f25759898ea2f82ef3e4fe761c452a49701 (patch) | |
tree | c6225315ca2964bced98b476a60cb1d16fd61cc9 | |
parent | bf59a9298f6154cb85ebebabd4f45738caf29b35 (diff) | |
download | gem5-03229f25759898ea2f82ef3e4fe761c452a49701.tar.xz |
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.
-rw-r--r-- | configs/common/Options.py | 4 | ||||
-rw-r--r-- | configs/common/Simulation.py | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/configs/common/Options.py b/configs/common/Options.py index ff4acbe37..1941875bc 100644 --- a/configs/common/Options.py +++ b/configs/common/Options.py @@ -85,6 +85,10 @@ parser.add_option("--work-end-checkpoint-count", action="store", type="int", 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 --git a/configs/common/Simulation.py b/configs/common/Simulation.py index 1897fa8cb..434fe8369 100644 --- a/configs/common/Simulation.py +++ b/configs/common/Simulation.py @@ -60,7 +60,15 @@ def setCPUClass(options): 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: |