changeset 9323db591b22 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=9323db591b22
description:
arm,config: Refactor the example big.LITTLE(tm) configuration
This patch prepares future extensions and customisation of the example
big.LITTLE configuration script. It breaks out the major phases into
functions so they can be called from other python scripts.
Change-Id: I2cb7c207c410fe14602cf17af7482719abba6c24
Reviewed-by: Andreas Sandberg <[email protected]>
diffstat:
configs/example/arm/fs_bigLITTLE.py | 35 +++++++++++++++++++++++++----------
1 files changed, 25 insertions(+), 10 deletions(-)
diffs (78 lines):
diff -r 5a766820e739 -r 9323db591b22 configs/example/arm/fs_bigLITTLE.py
--- a/configs/example/arm/fs_bigLITTLE.py Tue Feb 14 15:09:18 2017 -0600
+++ b/configs/example/arm/fs_bigLITTLE.py Tue Feb 14 15:09:18 2017 -0600
@@ -108,10 +108,7 @@
return sys
-def main():
- parser = argparse.ArgumentParser(
- description="Generic ARM big.LITTLE configuration")
-
+def addOptions(parser):
parser.add_argument("--restore-from", type=str, default=None,
help="Restore from checkpoint")
parser.add_argument("--dtb", type=str, default=default_dtb,
@@ -138,11 +135,12 @@
help="Big CPU clock frequency")
parser.add_argument("--little-cpu-clock", type=str, default="1GHz",
help="Little CPU clock frequency")
+ return parser
+
+def build(options):
m5.ticks.fixGlobalFrequency()
- options = parser.parse_args()
-
kernel_cmd = [
"earlyprintk=pl011,0x1c090000",
"console=ttyAMA0",
@@ -208,20 +206,27 @@
# Linux device tree
system.dtb_filename = SysPaths.binary(options.dtb)
+ return root
+
+
+def instantiate(checkpoint_path=None):
# Get and load from the chkpt or simpoint checkpoint
- if options.restore_from is not None:
- m5.instantiate(options.restore_from)
+ if checkpoint_path is not None:
+ m5.util.inform("Restoring from checkpoint %s", checkpoint_path)
+ m5.instantiate(checkpoint_path)
else:
m5.instantiate()
+
+def run(checkpoint_dir=m5.options.outdir):
# start simulation (and drop checkpoints when requested)
while True:
event = m5.simulate()
exit_msg = event.getCause()
if exit_msg == "checkpoint":
print "Dropping checkpoint at tick %d" % m5.curTick()
- cpt_dir = os.path.join(m5.options.outdir, "cpt.%d" % m5.curTick())
- m5.checkpoint(os.path.join(cpt_dir))
+ cpt_dir = os.path.join(checkpoint_dir, "cpt.%d" % m5.curTick())
+ m5.checkpoint(cpt_dir)
print "Checkpoint done."
else:
print exit_msg, " @ ", m5.curTick()
@@ -230,5 +235,15 @@
sys.exit(event.getCode())
+def main():
+ parser = argparse.ArgumentParser(
+ description="Generic ARM big.LITTLE configuration")
+ addOptions(parser)
+ options = parser.parse_args()
+ root = build(options)
+ instantiate(options.restore_from)
+ run()
+
+
if __name__ == "__m5_main__":
main()
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev