config: Add ability to exit simulation after initialization
When using gem5 as a slave simulator, it will not advance the clock on its own and depends on the master simulator calling simulate(). This new option lets us use the Python scripts to do all the configuration while stopping short of actually simulating anything.
This commit is contained in:
parent
564482c782
commit
bcea57afc3
2 changed files with 10 additions and 0 deletions
|
@ -150,6 +150,9 @@ def addCommonOptions(parser):
|
||||||
parser.add_option("--init-param", action="store", type="int", default=0,
|
parser.add_option("--init-param", action="store", type="int", default=0,
|
||||||
help="""Parameter available in simulation with m5
|
help="""Parameter available in simulation with m5
|
||||||
initparam""")
|
initparam""")
|
||||||
|
parser.add_option("--initialize-only", action="store_true", default=False,
|
||||||
|
help="""Exit after initialization. Do not simulate time.
|
||||||
|
Useful when gem5 is run as a library.""")
|
||||||
|
|
||||||
# Simpoint options
|
# Simpoint options
|
||||||
parser.add_option("--simpoint-profile", action="store_true",
|
parser.add_option("--simpoint-profile", action="store_true",
|
||||||
|
|
|
@ -581,6 +581,13 @@ def run(options, root, testsys, cpu_class):
|
||||||
cpt_starttick, checkpoint_dir = findCptDir(options, cptdir, testsys)
|
cpt_starttick, checkpoint_dir = findCptDir(options, cptdir, testsys)
|
||||||
m5.instantiate(checkpoint_dir)
|
m5.instantiate(checkpoint_dir)
|
||||||
|
|
||||||
|
# Initialization is complete. If we're not in control of simulation
|
||||||
|
# (that is, if we're a slave simulator acting as a component in another
|
||||||
|
# 'master' simulator) then we're done here. The other simulator will
|
||||||
|
# call simulate() directly. --initialize-only is used to indicate this.
|
||||||
|
if options.initialize_only:
|
||||||
|
return
|
||||||
|
|
||||||
# Handle the max tick settings now that tick frequency was resolved
|
# Handle the max tick settings now that tick frequency was resolved
|
||||||
# during system instantiation
|
# during system instantiation
|
||||||
# NOTE: the maxtick variable here is in absolute ticks, so it must
|
# NOTE: the maxtick variable here is in absolute ticks, so it must
|
||||||
|
|
Loading…
Reference in a new issue