sim: Add support for forking
authorAndreas Sandberg <andreas@sandberg.pp.se>
Thu, 26 Nov 2015 10:11:57 +0000 (10:11 +0000)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Thu, 26 Nov 2015 10:11:57 +0000 (10:11 +0000)
commita91c1e69a880dd6eec3cc980801ea18ddcbe7c31
tree14f6f2b498e035e163b50bb88fede28be4a45f00
parent6de52699bb10ec445e45400b419bb61122a68162
sim: Add support for forking

This changeset adds forking capabilities to the gem5 python scripts. A fork
method is added to simulate.py. This method is responsible for forking the
simulator itself, and will direct all output files to a new output directory
based on the fork sequence number. The default name of the output directory is
the same as the parent with the suffix ".fN" added where N is the fork sequence
number. The fork method provides the option to specify if the system should be
drained prior to forking, or not. By default the system is drained to ensure
that there are no in-flight transactions.

When forking the simulator, the fork method returns the PID of the child
process, or returns 0 if running in the child. This is in line with the standard
Python forking interface.

Signed-off-by: Andreas Sandberg <andreas@sandberg.pp.se>
[sascha.bischoff@arm.com: Rebased patches onto a newer gem5 version]
Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
[andreas.sandberg@arm.com: Updated to comply with modern draining semantics ]
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
src/python/m5/simulate.py
src/python/swig/core.i