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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 import os
2 from autotest_lib.client.bin import utils
3
4 import base_tracer
5 try:
6 from site_tracers import *
7 except ImportError:
8 pass
9
10
11 off = base_tracer.Tracer
12
13
14 class ftrace(base_tracer.Tracer):
15
16 mountpoint = '/sys/kernel/debug'
17 tracing_dir = os.path.join(mountpoint, 'tracing')
18
19 def warmup(self, buffer_size_kb):
20 if not os.path.exists(self.tracing_dir):
21 utils.system('mount -t debugfs debugfs %s' % self.mountpoint)
22
23 # ensure clean state:
24 self.trace_config('tracing_enabled', '0')
25 self.trace_config('current_tracer', 'nop')
26 self.trace_config('events/enable', '0')
27 self.trace_config('trace', '')
28 # set ring buffer size:
29 self.trace_config('buffer_size_kb', str(buffer_size_kb))
30 # enable tracepoints:
31 self.trace_config('events/syscalls/sys_enter_getuid/enable', '1')
32
33 def cleanup(self):
34 # reset ring buffer size:
35 self.trace_config('buffer_size_kb', '1408')
36 # disable tracepoints:
37 self.trace_config('events/enable', '0')
38
39 def start_tracing(self):
40 self.trace_config('tracing_enabled', '1')
41
42 def stop_tracing(self):
43 self.trace_config('tracing_enabled', '0')
44
45 def reset_tracing(self):
46 self.trace_config('trace', '')
47
48 def gather_stats(self, results):
49 per_cpu = os.path.join(self.tracing_dir, 'per_cpu')
50 for cpu in os.listdir(per_cpu):
51 cpu_stats = os.path.join(per_cpu, cpu, 'stats')
52 for line in utils.read_file(cpu_stats).splitlines():
53 key, val = line.split(': ')
54 key = key.replace(' ', '_')
55 val = int(val)
56 cpu_key = '%s_%s' % (cpu, key)
57 total_key = 'total_' + key
58 results[cpu_key] = val
59 results[total_key] = (results.get(total_key, 0) +
60 results[cpu_key])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698