Re: [PATCH v2] perf scripts python: Add Python 3 support to syscall-counts-by-pid.py

From: Tony Jones
Date: Fri Jan 18 2019 - 19:53:40 EST


On 1/17/19 1:45 AM, Seeteena Thoufeek wrote:

> - print "\nsyscall events for %s:\n\n" % (for_comm),
> + print("\nsyscall events for %s:\n\n" % (for_comm)),
> else:
> - print "\nsyscall events by comm/pid:\n\n",
> + print("\nsyscall events by comm/pid:\n\n"),
>
> - print "%-40s %10s\n" % ("comm [pid]/syscalls", "count"),
> - print "%-40s %10s\n" % ("----------------------------------------", \
> - "----------"),
> + print("%-40s %10s\n" % ("comm [pid]/syscalls", "count")),
> + print("%-40s %10s\n" % ("----------------------------------------", \
> + "----------")),

Is the 'print (x),' [trailing comma] syntax valid for function syntax?

Print "x", in Py2 means suppress the trailing newline.

You need to actually run the scripts (old, new PYTHON=python2, new PYTHON=python3) and compare the output.

This:
print "%-40s %10s\n" % ("comm [pid]/syscalls", "count"),

can be reworked as:
print ("%-40s %10s" % ("comm [pid]/syscalls", "count"))


See: https://build.opensuse.org/package/view_file/devel:tools/perf/port-failed-syscalls-by-pid-script-to-python3.patch?expand=1