History

perf script: Autopep8 futex-contention

10 years leaves its mark! Python has evolved and so has its style guide. Even with vim it is getting hard to follow the no longer valid guidelines (spaces vs. tabs). Autopep8 this code to modernize it!

Hagen Paul Pfeifer committed 6 years ago

Commit 2a684fc1 parent 002a3d61 file · +28 −23Browse files

Showing the changes to tools/perf/scripts/python (1 of 1 file). Show all

Unified · Split

tools/perf/scripts/python/futex-contention.py+28−23
@@ -12,41 +12,46 @@ · 11 unmodified lines
12 12
13from __future__ import print_function13from __future__ import print_function
14 14
15import os, sys15import os
16sys.path.append(os.environ['PERF_EXEC_PATH'] + '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')16import sys
17sys.path.append(os.environ['PERF_EXEC_PATH'] +
18 '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
17from Util import *19from Util import *
18 20
19process_names = {}21process_names = {}
20thread_thislock = {}22thread_thislock = {}
21thread_blocktime = {}23thread_blocktime = {}
22 24
23lock_waits = {} # long-lived stats on (tid,lock) blockage elapsed time25lock_waits = {} # long-lived stats on (tid,lock) blockage elapsed time
24process_names = {} # long-lived pid-to-execname mapping26process_names = {} # long-lived pid-to-execname mapping
27
25 28
26def syscalls__sys_enter_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,29def syscalls__sys_enter_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,
27 nr, uaddr, op, val, utime, uaddr2, val3):30 nr, uaddr, op, val, utime, uaddr2, val3):
28 cmd = op & FUTEX_CMD_MASK31 cmd = op & FUTEX_CMD_MASK
29 if cmd != FUTEX_WAIT:32 if cmd != FUTEX_WAIT:
30 return # we don't care about originators of WAKE events33 return # we don't care about originators of WAKE events
34
35 process_names[tid] = comm
36 thread_thislock[tid] = uaddr
37 thread_blocktime[tid] = nsecs(s, ns)
31 38
32 process_names[tid] = comm
33 thread_thislock[tid] = uaddr
34 thread_blocktime[tid] = nsecs(s, ns)
35 39
36def syscalls__sys_exit_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,40def syscalls__sys_exit_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,
37 nr, ret):41 nr, ret):
38 if tid in thread_blocktime:42 if tid in thread_blocktime:
39 elapsed = nsecs(s, ns) - thread_blocktime[tid]43 elapsed = nsecs(s, ns) - thread_blocktime[tid]
40 add_stats(lock_waits, (tid, thread_thislock[tid]), elapsed)44 add_stats(lock_waits, (tid, thread_thislock[tid]), elapsed)
41 del thread_blocktime[tid]45 del thread_blocktime[tid]
42 del thread_thislock[tid]46 del thread_thislock[tid]
47
43 48
44def trace_begin():49def trace_begin():
45 print("Press control+C to stop and show the summary")50 print("Press control+C to stop and show the summary")
46 51
47def trace_end():
48 for (tid, lock) in lock_waits:
49 min, max, avg, count = lock_waits[tid, lock]
50 print("%s[%d] lock %x contended %d times, %d avg ns" %
51 (process_names[tid], tid, lock, count, avg))
52 52
53def trace_end():
54 for (tid, lock) in lock_waits:
55 min, max, avg, count = lock_waits[tid, lock]
56 print("%s[%d] lock %x contended %d times, %d avg ns" %
57 (process_names[tid], tid, lock, count, avg))