config, arm: Unify checkpoint path handling in bL configs
authorAndreas Sandberg <andreas.sandberg@arm.com>
Mon, 20 Mar 2017 10:44:07 +0000 (10:44 +0000)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Mon, 3 Apr 2017 16:37:55 +0000 (16:37 +0000)
The vanilla bL configuration file and the dist-gem5 configuration file
use slightly different code paths when restoring from
checkpoints. Unify this by passing the parsed options to the
instantiate() method and adding an optional checkpoint keyword
argument for checkpoint directories (only used by the dist-gem5
script).

Change-Id: I9943ec10bd7a256465e29c8de571142ec3fbaa0e
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2560
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Weiping Liao <weipingliao@google.com>
configs/example/arm/dist_bigLITTLE.py
configs/example/arm/fs_bigLITTLE.py

index 13b8abf5fe273ba7f124146fc377e0971c60bbeb..5194fc7e6ce301769397d39040b32076e2d370f7 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 ARM Limited
+# Copyright (c) 2016-2017 ARM Limited
 # All rights reserved.
 #
 # The license below extends only to copyright in the software and shall
@@ -132,12 +132,7 @@ def main():
         root = bL.build(options)
         addEthernet(root.system, options)
 
-    if options.restore_from:
-        checkpoint_path = os.path.join(options.checkpoint_dir,
-                                       options.restore_from)
-    else:
-        checkpoint_path = None
-    bL.instantiate(checkpoint_path)
+    bL.instantiate(options, checkpoint_dir=options.checkpoint_dir)
     bL.run(options.checkpoint_dir)
 
 
index c542b8510a40dead3b9cde133af7077ce14affbd..c2ecf883173d63c93d0803916f620b3dc05107bc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 ARM Limited
+# Copyright (c) 2016-2017 ARM Limited
 # All rights reserved.
 #
 # The license below extends only to copyright in the software and shall
@@ -209,11 +209,16 @@ def build(options):
     return root
 
 
-def instantiate(checkpoint_path=None):
+def instantiate(options, checkpoint_dir=None):
     # Get and load from the chkpt or simpoint checkpoint
-    if checkpoint_path is not None:
-        m5.util.inform("Restoring from checkpoint %s", checkpoint_path)
-        m5.instantiate(checkpoint_path)
+    if options.restore_from:
+        if checkpoint_dir and not os.path.isabs(options.restore_from):
+            cpt = os.path.join(checkpoint_dir, options.restore_from)
+        else:
+            cpt = options.restore_from
+
+        m5.util.inform("Restoring from checkpoint %s", cpt)
+        m5.instantiate(cpt)
     else:
         m5.instantiate()
 
@@ -241,7 +246,7 @@ def main():
     addOptions(parser)
     options = parser.parse_args()
     root = build(options)
-    instantiate(options.restore_from)
+    instantiate(options)
     run()