Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Unified Diff: client/tests/tracing_microbenchmark/tracers.py

Issue 4823005: Merge remote branch 'cros/upstream' into tempbranch (Closed) Base URL: http://git.chromium.org/git/autotest.git@master
Patch Set: patch Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: client/tests/tracing_microbenchmark/tracers.py
diff --git a/client/tests/tracing_microbenchmark/tracers.py b/client/tests/tracing_microbenchmark/tracers.py
new file mode 100644
index 0000000000000000000000000000000000000000..bdd5194de0ccfa8caf52f0acecb5f961378fd880
--- /dev/null
+++ b/client/tests/tracing_microbenchmark/tracers.py
@@ -0,0 +1,60 @@
+import os
+from autotest_lib.client.bin import utils
+
+import base_tracer
+try:
+ from site_tracers import *
+except ImportError:
+ pass
+
+
+off = base_tracer.Tracer
+
+
+class ftrace(base_tracer.Tracer):
+
+ mountpoint = '/sys/kernel/debug'
+ tracing_dir = os.path.join(mountpoint, 'tracing')
+
+ def warmup(self, buffer_size_kb):
+ if not os.path.exists(self.tracing_dir):
+ utils.system('mount -t debugfs debugfs %s' % self.mountpoint)
+
+ # ensure clean state:
+ self.trace_config('tracing_enabled', '0')
+ self.trace_config('current_tracer', 'nop')
+ self.trace_config('events/enable', '0')
+ self.trace_config('trace', '')
+ # set ring buffer size:
+ self.trace_config('buffer_size_kb', str(buffer_size_kb))
+ # enable tracepoints:
+ self.trace_config('events/syscalls/sys_enter_getuid/enable', '1')
+
+ def cleanup(self):
+ # reset ring buffer size:
+ self.trace_config('buffer_size_kb', '1408')
+ # disable tracepoints:
+ self.trace_config('events/enable', '0')
+
+ def start_tracing(self):
+ self.trace_config('tracing_enabled', '1')
+
+ def stop_tracing(self):
+ self.trace_config('tracing_enabled', '0')
+
+ def reset_tracing(self):
+ self.trace_config('trace', '')
+
+ def gather_stats(self, results):
+ per_cpu = os.path.join(self.tracing_dir, 'per_cpu')
+ for cpu in os.listdir(per_cpu):
+ cpu_stats = os.path.join(per_cpu, cpu, 'stats')
+ for line in utils.read_file(cpu_stats).splitlines():
+ key, val = line.split(': ')
+ key = key.replace(' ', '_')
+ val = int(val)
+ cpu_key = '%s_%s' % (cpu, key)
+ total_key = 'total_' + key
+ results[cpu_key] = val
+ results[total_key] = (results.get(total_key, 0) +
+ results[cpu_key])

Powered by Google App Engine
This is Rietveld 408576698