summaryrefslogtreecommitdiff
path: root/src/python/swig
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas@sandberg.pp.se>2015-11-26 10:11:57 +0000
committerAndreas Sandberg <andreas@sandberg.pp.se>2015-11-26 10:11:57 +0000
commita91c1e69a880dd6eec3cc980801ea18ddcbe7c31 (patch)
tree14f6f2b498e035e163b50bb88fede28be4a45f00 /src/python/swig
parent6de52699bb10ec445e45400b419bb61122a68162 (diff)
downloadgem5-a91c1e69a880dd6eec3cc980801ea18ddcbe7c31.tar.xz
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>
Diffstat (limited to 'src/python/swig')
-rw-r--r--src/python/swig/core.i3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/python/swig/core.i b/src/python/swig/core.i
index 862c0e37e..08fbe01d1 100644
--- a/src/python/swig/core.i
+++ b/src/python/swig/core.i
@@ -55,6 +55,8 @@ const bool flag_TRACING_ON = TRACING_ON;
inline void disableAllListeners() { ListenSocket::disableAll(); }
+inline bool listenersDisabled() { return ListenSocket::allDisabled(); }
+
inline void
seedRandom(uint64_t seed)
{
@@ -71,6 +73,7 @@ seedRandom(uint64_t seed)
void setOutputDir(const std::string &dir);
void doExitCleanup();
void disableAllListeners();
+bool listenersDisabled();
void seedRandom(uint64_t seed);
%immutable compileDate;