Re: [PATCH v2] perf scripts python: Add Python 3 support to sctop.py

2019-01-18 Thread Tony Jones
On 1/17/19 1:45 AM, Seeteena Thoufeek wrote:

> +from __future__ import print_function

Again, you don't need this.


> - print "\nsyscall events for %s:\n\n" % (for_comm),
> + print("\nsyscall events for %s:\n\n" % (for_comm)),

same comments regarding trailing comma usage

$ git annotate tools/perf/scripts/python/sctop.py | grep thread
2e7d1e3fb8043   (Arnaldo Carvalho de Melo   2010-10-25 18:39:20 -0200   
11)import os, sys, thread, time
47902f3611b39   (Tom Zanussi2010-04-01 23:59:23 -0500   42) 
thread.start_new_thread(print_syscall_totals, (interval,))

The low level threading api has changed in the most recent Python versions.   I 
think you'll find you also need:

@@ -8,7 +8,12 @@
 # will be refreshed every [interval] seconds.  The default interval is
 # 3 seconds.

-import os, sys, thread, time
+import os, sys, time
+
+try:
+import thread
+except ImportError:
+import _thread as thread



Tony


[PATCH v2] perf scripts python: Add Python 3 support to sctop.py

2019-01-17 Thread Seeteena Thoufeek
Support both Python 2 and Python 3 in sctop.py.``print``
is now a function rather than a statement. This should have no
functional change.

Signed-off-by: Seeteena Thoufeek 
Reviewed-by: Ravi Bangoria 
---
 tools/perf/scripts/python/sctop.py | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/tools/perf/scripts/python/sctop.py 
b/tools/perf/scripts/python/sctop.py
index 61621b9..d059a2a 100644
--- a/tools/perf/scripts/python/sctop.py
+++ b/tools/perf/scripts/python/sctop.py
@@ -7,6 +7,7 @@
 # [comm] are displayed. If an [interval] arg is specified, the display
 # will be refreshed every [interval] seconds.  The default interval is
 # 3 seconds.
+from __future__ import print_function
 
 import os, sys, thread, time
 
@@ -62,18 +63,18 @@ def print_syscall_totals(interval):
while 1:
clear_term()
if for_comm is not None:
-   print "\nsyscall events for %s:\n\n" % (for_comm),
+   print("\nsyscall events for %s:\n\n" % (for_comm)),
else:
-   print "\nsyscall events:\n\n",
+   print("\nsyscall events:\n\n"),
 
-   print "%-40s  %10s\n" % ("event", "count"),
-   print "%-40s  %10s\n" % 
("", \
-"--"),
+   print("%-40s  %10s\n" % ("event", "count")),
+   print("%-40s  %10s\n" % 
("", \
+"--")),
 
-   for id, val in sorted(syscalls.iteritems(), key = lambda(k, v): 
(v, k), \
+   for id, val in sorted(syscalls.iteritems(), key = lambda k_v: 
(k_v[1], k_v[0]), \
  reverse = True):
try:
-   print "%-40s  %10d\n" % (syscall_name(id), val),
+   print("%-40s  %10d\n" % (syscall_name(id), 
val)),
except TypeError:
pass
syscalls.clear()
-- 
1.8.3.1