linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] perf script: autopep8 futex-contention
@ 2020-09-21 20:19 Hagen Paul Pfeifer
  2020-09-21 20:19 ` [PATCH 2/2] perf script: add min, max to futex-contention Hagen Paul Pfeifer
  0 siblings, 1 reply; 6+ messages in thread
From: Hagen Paul Pfeifer @ 2020-09-21 20:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Hagen Paul Pfeifer, Arnaldo Carvalho de Melo

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>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/scripts/python/futex-contention.py | 51 ++++++++++---------
 1 file changed, 28 insertions(+), 23 deletions(-)

diff --git a/tools/perf/scripts/python/futex-contention.py b/tools/perf/scripts/python/futex-contention.py
index 0c4841acf75d..c440f02627dd 100644
--- a/tools/perf/scripts/python/futex-contention.py
+++ b/tools/perf/scripts/python/futex-contention.py
@@ -12,41 +12,46 @@
 
 from __future__ import print_function
 
-import os, sys
-sys.path.append(os.environ['PERF_EXEC_PATH'] + '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
+import os
+import sys
+sys.path.append(os.environ['PERF_EXEC_PATH'] +
+                '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
 from Util import *
 
 process_names = {}
 thread_thislock = {}
 thread_blocktime = {}
 
-lock_waits = {} # long-lived stats on (tid,lock) blockage elapsed time
-process_names = {} # long-lived pid-to-execname mapping
+lock_waits = {}  # long-lived stats on (tid,lock) blockage elapsed time
+process_names = {}  # long-lived pid-to-execname mapping
+
 
 def syscalls__sys_enter_futex(event, ctxt, cpu, s, ns, tid, comm, callchain,
-			      nr, uaddr, op, val, utime, uaddr2, val3):
-	cmd = op & FUTEX_CMD_MASK
-	if cmd != FUTEX_WAIT:
-		return # we don't care about originators of WAKE events
+                              nr, uaddr, op, val, utime, uaddr2, val3):
+    cmd = op & FUTEX_CMD_MASK
+    if cmd != FUTEX_WAIT:
+        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,
-			     nr, ret):
-	if tid in thread_blocktime:
-		elapsed = nsecs(s, ns) - thread_blocktime[tid]
-		add_stats(lock_waits, (tid, thread_thislock[tid]), elapsed)
-		del thread_blocktime[tid]
-		del thread_thislock[tid]
+                             nr, ret):
+    if tid in thread_blocktime:
+        elapsed = nsecs(s, ns) - thread_blocktime[tid]
+        add_stats(lock_waits, (tid, thread_thislock[tid]), elapsed)
+        del thread_blocktime[tid]
+        del thread_thislock[tid]
+
 
 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():
-	for (tid, lock) in lock_waits:
-		min, max, avg, count = lock_waits[tid, lock]
-		print("%s[%d] lock %x contended %d times, %d avg ns" %
-			(process_names[tid], tid, lock, count, avg))
 
+def trace_end():
+    for (tid, lock) in lock_waits:
+        min, max, avg, count = lock_waits[tid, lock]
+        print("%s[%d] lock %x contended %d times, %d avg ns" %
+              (process_names[tid], tid, lock, count, avg))
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] perf script: add min, max to futex-contention
  2020-09-21 20:19 [PATCH 1/2] perf script: autopep8 futex-contention Hagen Paul Pfeifer
@ 2020-09-21 20:19 ` Hagen Paul Pfeifer
  2020-09-22 20:09   ` [PATCH v2] " Hagen Paul Pfeifer
  0 siblings, 1 reply; 6+ messages in thread
From: Hagen Paul Pfeifer @ 2020-09-21 20:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Hagen Paul Pfeifer, Arnaldo Carvalho de Melo

Average is quite informative, but the outliners - especially max - are
also of interest.

Before:

mutex-locker[793299] lock 5637ec61e080 contended 3400 times, 446 avg ns
mutex-locker[793301] lock 5637ec61e080 contended 3563 times, 385 avg ns
mutex-locker[793300] lock 5637ec61e080 contended 3110 times, 1855 avg ns

After:

mutex-locker[795251] lock 55b14e6dd080 contended 3853 times, 1279 avg ns [max: 12270 us, min 340 us]
mutex-locker[795253] lock 55b14e6dd080 contended 2911 times, 518 avg ns [max: 51660261 us, min 347 us]
mutex-locker[795252] lock 55b14e6dd080 contended 3843 times, 385 avg ns [max: 24323998 us, min 338 us]

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/scripts/python/futex-contention.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/scripts/python/futex-contention.py b/tools/perf/scripts/python/futex-contention.py
index c440f02627dd..e8a02aecabd9 100644
--- a/tools/perf/scripts/python/futex-contention.py
+++ b/tools/perf/scripts/python/futex-contention.py
@@ -53,5 +53,5 @@ def trace_begin():
 def trace_end():
     for (tid, lock) in lock_waits:
         min, max, avg, count = lock_waits[tid, lock]
-        print("%s[%d] lock %x contended %d times, %d avg ns" %
-              (process_names[tid], tid, lock, count, avg))
+        print("%s[%d] lock %x contended %d times, %d avg ns [max: %d us, min %d us]" %
+              (process_names[tid], tid, lock, count, avg, max, min))
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2] perf script: add min, max to futex-contention
  2020-09-21 20:19 ` [PATCH 2/2] perf script: add min, max to futex-contention Hagen Paul Pfeifer
@ 2020-09-22 20:09   ` Hagen Paul Pfeifer
  2020-09-23 12:31     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 6+ messages in thread
From: Hagen Paul Pfeifer @ 2020-09-22 20:09 UTC (permalink / raw)
  To: linux-kernel; +Cc: Hagen Paul Pfeifer, Arnaldo Carvalho de Melo

Average is quite informative, but the outliners - especially max - are
also of interest.

Before:

mutex-locker[793299] lock 5637ec61e080 contended 3400 times, 446 avg ns
mutex-locker[793301] lock 5637ec61e080 contended 3563 times, 385 avg ns
mutex-locker[793300] lock 5637ec61e080 contended 3110 times, 1855 avg ns

After:

mutex-locker[795251] lock 55b14e6dd080 contended 3853 times, 1279 avg ns [max: 12270 ns, min 340 ns]
mutex-locker[795253] lock 55b14e6dd080 contended 2911 times, 518 avg ns [max: 51660261 ns, min 347 ns]
mutex-locker[795252] lock 55b14e6dd080 contended 3843 times, 385 avg ns [max: 24323998 ns, min 338 ns]

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---

v2: nanosecond, not microseconds

 tools/perf/scripts/python/futex-contention.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/scripts/python/futex-contention.py b/tools/perf/scripts/python/futex-contention.py
index c440f02627dd..7e884d46f920 100644
--- a/tools/perf/scripts/python/futex-contention.py
+++ b/tools/perf/scripts/python/futex-contention.py
@@ -53,5 +53,5 @@ def trace_begin():
 def trace_end():
     for (tid, lock) in lock_waits:
         min, max, avg, count = lock_waits[tid, lock]
-        print("%s[%d] lock %x contended %d times, %d avg ns" %
-              (process_names[tid], tid, lock, count, avg))
+        print("%s[%d] lock %x contended %d times, %d avg ns [max: %d ns, min %d ns]" %
+              (process_names[tid], tid, lock, count, avg, max, min))
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] perf script: add min, max to futex-contention
  2020-09-22 20:09   ` [PATCH v2] " Hagen Paul Pfeifer
@ 2020-09-23 12:31     ` Arnaldo Carvalho de Melo
  2020-09-23 12:40       ` Hagen Paul Pfeifer
  0 siblings, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-09-23 12:31 UTC (permalink / raw)
  To: Hagen Paul Pfeifer; +Cc: linux-kernel, Arnaldo Carvalho de Melo

Em Tue, Sep 22, 2020 at 10:09:22PM +0200, Hagen Paul Pfeifer escreveu:
> Average is quite informative, but the outliners - especially max - are
> also of interest.
> 
> Before:
> 
> mutex-locker[793299] lock 5637ec61e080 contended 3400 times, 446 avg ns
> mutex-locker[793301] lock 5637ec61e080 contended 3563 times, 385 avg ns
> mutex-locker[793300] lock 5637ec61e080 contended 3110 times, 1855 avg ns
> 
> After:
> 
> mutex-locker[795251] lock 55b14e6dd080 contended 3853 times, 1279 avg ns [max: 12270 ns, min 340 ns]
> mutex-locker[795253] lock 55b14e6dd080 contended 2911 times, 518 avg ns [max: 51660261 ns, min 347 ns]
> mutex-locker[795252] lock 55b14e6dd080 contended 3843 times, 385 avg ns [max: 24323998 ns, min 338 ns]
> 
> Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---

Didn't apply here, I did it by hand, please check, probably some
indentation artifact.

Thanks for the patch!

- Arnaldo

diff --git a/tools/perf/scripts/python/futex-contention.py b/tools/perf/scripts/python/futex-contention.py
index 0c4841acf75dadcb..ba044d20e8fff39b 100644
--- a/tools/perf/scripts/python/futex-contention.py
+++ b/tools/perf/scripts/python/futex-contention.py
@@ -47,6 +47,6 @@ def trace_begin():
 def trace_end():
 	for (tid, lock) in lock_waits:
 		min, max, avg, count = lock_waits[tid, lock]
-		print("%s[%d] lock %x contended %d times, %d avg ns" %
-			(process_names[tid], tid, lock, count, avg))
+		print("%s[%d] lock %x contended %d times, %d avg ns [max: %d ns, min %d ns]" %
+			(process_names[tid], tid, lock, count, avg, max, min))
 

 
> v2: nanosecond, not microseconds
> 
>  tools/perf/scripts/python/futex-contention.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/scripts/python/futex-contention.py b/tools/perf/scripts/python/futex-contention.py
> index c440f02627dd..7e884d46f920 100644
> --- a/tools/perf/scripts/python/futex-contention.py
> +++ b/tools/perf/scripts/python/futex-contention.py
> @@ -53,5 +53,5 @@ def trace_begin():
>  def trace_end():
>      for (tid, lock) in lock_waits:
>          min, max, avg, count = lock_waits[tid, lock]
> -        print("%s[%d] lock %x contended %d times, %d avg ns" %
> -              (process_names[tid], tid, lock, count, avg))
> +        print("%s[%d] lock %x contended %d times, %d avg ns [max: %d ns, min %d ns]" %
> +              (process_names[tid], tid, lock, count, avg, max, min))
> -- 
> 2.28.0
> 

-- 

- Arnaldo

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] perf script: add min, max to futex-contention
  2020-09-23 12:31     ` Arnaldo Carvalho de Melo
@ 2020-09-23 12:40       ` Hagen Paul Pfeifer
  2020-09-23 14:07         ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 6+ messages in thread
From: Hagen Paul Pfeifer @ 2020-09-23 12:40 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: linux-kernel, Arnaldo Carvalho de Melo

> On 09/23/2020 2:31 PM Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> 
> Didn't apply here, I did it by hand, please check, probably some
> indentation artifact.

Probably you missed patch one of the patchset - the autopep8 formatting
one for the lock contention script?

> Thanks for the patch!

You are welcome Arnaldo!

Hagen

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] perf script: add min, max to futex-contention
  2020-09-23 12:40       ` Hagen Paul Pfeifer
@ 2020-09-23 14:07         ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-09-23 14:07 UTC (permalink / raw)
  To: Hagen Paul Pfeifer; +Cc: linux-kernel, Arnaldo Carvalho de Melo

Em Wed, Sep 23, 2020 at 02:40:10PM +0200, Hagen Paul Pfeifer escreveu:
> > On 09/23/2020 2:31 PM Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > 
> > Didn't apply here, I did it by hand, please check, probably some
> > indentation artifact.
> 
> Probably you missed patch one of the patchset - the autopep8 formatting
> one for the lock contention script?

Right, I missed that, I'm removing my "fix", autopep'in and then
reapplying your verbatin 2/2 patch.
 
> > Thanks for the patch!
> 
> You are welcome Arnaldo!
> 
> Hagen

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-09-23 14:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-21 20:19 [PATCH 1/2] perf script: autopep8 futex-contention Hagen Paul Pfeifer
2020-09-21 20:19 ` [PATCH 2/2] perf script: add min, max to futex-contention Hagen Paul Pfeifer
2020-09-22 20:09   ` [PATCH v2] " Hagen Paul Pfeifer
2020-09-23 12:31     ` Arnaldo Carvalho de Melo
2020-09-23 12:40       ` Hagen Paul Pfeifer
2020-09-23 14:07         ` Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).