diff options
author | Athira Rajeev <atrajeev@linux.vnet.ibm.com> | 2024-06-23 12:18:50 +0530 |
---|---|---|
committer | Namhyung Kim <namhyung@kernel.org> | 2024-06-25 11:06:19 -0700 |
commit | 7d49ced808b169c8cb754da15a69ed0b2fb26567 (patch) | |
tree | 70258d4472b5104587b9191fd2f923d1d4c1239d /tools/perf/scripts | |
parent | b9241f150ac745698d0eabbf1d038efc32c24c34 (diff) | |
download | lwn-7d49ced808b169c8cb754da15a69ed0b2fb26567.tar.gz lwn-7d49ced808b169c8cb754da15a69ed0b2fb26567.zip |
tools/perf: Fix parallel-perf python script to replace new python syntax ":=" usage
perf test "perf script tests" fails as below in systems
with python 3.6
File "/home/athira/linux/tools/perf/tests/shell/../../scripts/python/parallel-perf.py", line 442
if line := p.stdout.readline():
^
SyntaxError: invalid syntax
--- Cleaning up ---
---- end(-1) ----
92: perf script tests: FAILED!
This happens because ":=" is a new syntax that assigns values
to variables as part of a larger expression. This is introduced
from python 3.8 and hence fails in setup with python 3.6
Address this by splitting the large expression and check the
value in two steps:
Previous line: if line := p.stdout.readline():
Current change:
line = p.stdout.readline()
if line:
With patch
./perf test "perf script tests"
93: perf script tests: Ok
Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: akanksha@linux.ibm.com
Cc: kjain@linux.ibm.com
Cc: maddy@linux.ibm.com
Cc: disgoel@linux.vnet.ibm.com
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240623064850.83720-3-atrajeev@linux.vnet.ibm.com
Diffstat (limited to 'tools/perf/scripts')
-rwxr-xr-x | tools/perf/scripts/python/parallel-perf.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/perf/scripts/python/parallel-perf.py b/tools/perf/scripts/python/parallel-perf.py index 21f32ec5ed46..be85fd7f6632 100755 --- a/tools/perf/scripts/python/parallel-perf.py +++ b/tools/perf/scripts/python/parallel-perf.py @@ -439,7 +439,8 @@ def ProcessCommandOutputLines(cmd, per_cpu, fn, *x): pat = re.compile(r"\s*\[[0-9]+\]") p = subprocess.Popen(cmd, stdout=subprocess.PIPE) while True: - if line := p.stdout.readline(): + line = p.stdout.readline() + if line: line = line.decode("utf-8") if pat.match(line): line = line.split() |