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!

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Link: http://lore.kernel.org/lkml/20200921201928.799498-1-hagen@jauu.net
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Hagen Paul Pfeifer 2020-09-21 22:19:27 +02:00 committed by Arnaldo Carvalho de Melo
parent 002a3d690f
commit 2a684fcb60
1 changed files with 28 additions and 23 deletions

View File

@ -12,41 +12,46 @@
from __future__ import print_function from __future__ import print_function
import os, sys import os
sys.path.append(os.environ['PERF_EXEC_PATH'] + '/scripts/python/Perf-Trace-Util/lib/Perf/Trace') import sys
sys.path.append(os.environ['PERF_EXEC_PATH'] +
'/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
from Util import * from Util import *
process_names = {} process_names = {}
thread_thislock = {} thread_thislock = {}
thread_blocktime = {} thread_blocktime = {}
lock_waits = {} # long-lived stats on (tid,lock) blockage elapsed time lock_waits = {} # long-lived stats on (tid,lock) blockage elapsed time
process_names = {} # long-lived pid-to-execname mapping process_names = {} # long-lived pid-to-execname mapping
def syscalls__sys_enter_futex(event, ctxt, cpu, s, ns, tid, comm, callchain, def syscalls__sys_enter_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,
nr, uaddr, op, val, utime, uaddr2, val3): nr, uaddr, op, val, utime, uaddr2, val3):
cmd = op & FUTEX_CMD_MASK cmd = op & FUTEX_CMD_MASK
if cmd != FUTEX_WAIT: if cmd != FUTEX_WAIT:
return # we don't care about originators of WAKE events return # we don't care about originators of WAKE events
process_names[tid] = comm
thread_thislock[tid] = uaddr
thread_blocktime[tid] = nsecs(s, ns)
process_names[tid] = comm
thread_thislock[tid] = uaddr
thread_blocktime[tid] = nsecs(s, ns)
def syscalls__sys_exit_futex(event, ctxt, cpu, s, ns, tid, comm, callchain, def syscalls__sys_exit_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,
nr, ret): nr, ret):
if tid in thread_blocktime: if tid in thread_blocktime:
elapsed = nsecs(s, ns) - thread_blocktime[tid] elapsed = nsecs(s, ns) - thread_blocktime[tid]
add_stats(lock_waits, (tid, thread_thislock[tid]), elapsed) add_stats(lock_waits, (tid, thread_thislock[tid]), elapsed)
del thread_blocktime[tid] del thread_blocktime[tid]
del thread_thislock[tid] del thread_thislock[tid]
def trace_begin(): def trace_begin():
print("Press control+C to stop and show the summary") print("Press control+C to stop and show the summary")
def trace_end(): def trace_end():
for (tid, lock) in lock_waits: for (tid, lock) in lock_waits:
min, max, avg, count = lock_waits[tid, lock] min, max, avg, count = lock_waits[tid, lock]
print("%s[%d] lock %x contended %d times, %d avg ns" % print("%s[%d] lock %x contended %d times, %d avg ns" %
(process_names[tid], tid, lock, count, avg)) (process_names[tid], tid, lock, count, avg))