aboutsummaryrefslogtreecommitdiff
path: root/src/benchmark.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/benchmark.py')
-rw-r--r--src/benchmark.py35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/benchmark.py b/src/benchmark.py
index 698a40d..fa99c65 100644
--- a/src/benchmark.py
+++ b/src/benchmark.py
@@ -52,8 +52,8 @@ class Benchmark (object):
print_error("Killing subprocess ", popen.args)
popen.kill()
popen.wait()
- print_debug("Server Out:", popen.stdout)
- print_debug("Server Err:", popen.stderr)
+ print_debug("Server Out:", popen.stdout.read())
+ print_debug("Server Err:", popen.stderr.read())
@staticmethod
def scale_threads_for_cpus(factor, steps=None):
@@ -311,24 +311,23 @@ class Benchmark (object):
substitutions["perm"] = ("{}-"*(len(perm)-1) + "{}").format(*perm)
substitutions.update(alloc)
- actual_cmd = self.cmd.format(**substitutions)
- actual_env = None
+ cmd_argv = self.cmd.format(**substitutions).split()
+ argv = []
# Prepend cmd if we are not measuring servers
if self.server_cmds == []:
- actual_cmd = src.util.prefix_cmd_with_abspath(actual_cmd)
- actual_cmd = "{} {} {}".format(self.measure_cmd,
- alloc["cmd_prefix"],
- actual_cmd)
- # substitute again
- actual_cmd = actual_cmd.format(**substitutions)
-
- actual_env = env
-
- print_debug("\nCmd:", actual_cmd)
- res = subprocess.run(actual_cmd.split(),
- env=actual_env,
- stderr=subprocess.PIPE,
+ prefix_argv = alloc["cmd_prefix"].format(**substitutions).split()
+ measure_argv = self.measure_cmd.format(**substitutions)
+ measure_argv = src.util.prefix_cmd_with_abspath(measure_argv).split()
+
+ argv.extend(prefix_argv)
+ argv.extend(measure_argv)
+ argv.extend(["build/run_cmd", env["LD_PRELOAD"]])
+
+ argv.extend(cmd_argv)
+
+ print_debug("\nCmd:", argv)
+ res = subprocess.run(argv, stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
universal_newlines=True)
@@ -339,7 +338,7 @@ class Benchmark (object):
print_debug("Stdout:\n" + res.stdout)
print_debug("Stderr:\n" + res.stderr)
if res.returncode != 0:
- print_error("{} failed with exit code {} for {}".format(actual_cmd, res.returncode, alloc_name))
+ print_error("{} failed with exit code {} for {}".format(argv, res.returncode, alloc_name))
else:
print_error("Preloading of {} failed for {}".format(alloc["LD_PRELOAD"], alloc_name))