|
@@ -889,6 +889,11 @@ class LocalNodeController(NodeController):
|
|
'--physcpubind={}'.format(','.join(map(str, processors))),
|
|
'--physcpubind={}'.format(','.join(map(str, processors))),
|
|
])
|
|
])
|
|
#
|
|
#
|
|
|
|
+ if self._env['valgrind_settings'] is not None:
|
|
|
|
+ cmdline.append('valgrind')
|
|
|
|
+ cmdline.extend(self._env['valgrind_settings'])
|
|
|
|
+ cmdline.append('--log-file={}'.format(self._env['valgrind_log']))
|
|
|
|
+ #
|
|
cmdline.extend([
|
|
cmdline.extend([
|
|
tor_path,
|
|
tor_path,
|
|
"-f", torrc,
|
|
"-f", torrc,
|
|
@@ -1085,6 +1090,7 @@ DEFAULTS = {
|
|
'num_cpus': None,
|
|
'num_cpus': None,
|
|
'numa_settings': None,
|
|
'numa_settings': None,
|
|
'measureme_log_dir': '${dir}',
|
|
'measureme_log_dir': '${dir}',
|
|
|
|
+ 'valgrind_settings': None,
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1176,6 +1182,9 @@ class TorEnviron(chutney.Templating.Environ):
|
|
def _get_lockfile(self, my):
|
|
def _get_lockfile(self, my):
|
|
return os.path.join(self['dir'], 'lock')
|
|
return os.path.join(self['dir'], 'lock')
|
|
|
|
|
|
|
|
+ def _get_valgrind_log(self, my):
|
|
|
|
+ return os.path.join(self['dir'], 'valgrind.log')
|
|
|
|
+
|
|
# A hs generates its key on first run,
|
|
# A hs generates its key on first run,
|
|
# so check for it at the last possible moment,
|
|
# so check for it at the last possible moment,
|
|
# but cache it in memory to avoid repeatedly reading the file
|
|
# but cache it in memory to avoid repeatedly reading the file
|