Support both Python2 and Python3 in the mem-phys-addr.py script There may be differences in the ordering of output lines due to differences in dictionary ordering etc. However the format within lines should be unchanged. The use of 'from __future__' implies the minimum supported Python2 version is now v2.6
Showing the changes to tools/perf/scripts/python (1 of 1 file). Show all
Unified · Split
| @@ -4,6 +4,8 @@ · 3 unmodified lines | ||
| 4 | 4 | # Copyright (c) 2018, Intel Corporation. |
| 5 | 5 | |
| 6 | 6 | from __future__ import division |
| 7 | +from __future__ import print_function | |
| 8 | + | |
| 7 | 9 | import os |
| 8 | 10 | import sys |
| 9 | 11 | import struct |
| @@ -31,21 +33,23 @@ def parse_iomem(): · 21 unmodified lines | ||
| 31 | 33 | for i, j in enumerate(f): |
| 32 | 34 | m = re.split('-|:',j,2) |
| 33 | 35 | if m[2].strip() == 'System RAM': |
| 34 | − system_ram.append(long(m[0], 16)) | |
| 35 | − system_ram.append(long(m[1], 16)) | |
| 36 | + system_ram.append(int(m[0], 16)) | |
| 37 | + system_ram.append(int(m[1], 16)) | |
| 36 | 38 | if m[2].strip() == 'Persistent Memory': |
| 37 | − pmem.append(long(m[0], 16)) | |
| 38 | − pmem.append(long(m[1], 16)) | |
| 39 | + pmem.append(int(m[0], 16)) | |
| 40 | + pmem.append(int(m[1], 16)) | |
| 39 | 41 | |
| 40 | 42 | def print_memory_type(): |
| 41 | − print "Event: %s" % (event_name) | |
| 42 | − print "%-40s %10s %10s\n" % ("Memory type", "count", "percentage"), | |
| 43 | − print "%-40s %10s %10s\n" % ("----------------------------------------", \ | |
| 43 | + print("Event: %s" % (event_name)) | |
| 44 | + print("%-40s %10s %10s\n" % ("Memory type", "count", "percentage"), end='') | |
| 45 | + print("%-40s %10s %10s\n" % ("----------------------------------------", | |
| 44 | 46 | "-----------", "-----------"), |
| 47 | + end=''); | |
| 45 | 48 | total = sum(load_mem_type_cnt.values()) |
| 46 | 49 | for mem_type, count in sorted(load_mem_type_cnt.most_common(), \ |
| 47 | − key = lambda(k, v): (v, k), reverse = True): | |
| 48 | − print "%-40s %10d %10.1f%%\n" % (mem_type, count, 100 * count / total), | |
| 50 | + key = lambda kv: (kv[1], kv[0]), reverse = True): | |
| 51 | + print("%-40s %10d %10.1f%%\n" % (mem_type, count, 100 * count / total), | |
| 52 | + end='') | |
| 49 | 53 | |
| 50 | 54 | def trace_begin(): |
| 51 | 55 | parse_iomem() |
| @@ -80,7 +84,7 @@ def find_memory_type(phys_addr): · 28 unmodified lines | ||
| 80 | 84 | f.seek(0, 0) |
| 81 | 85 | for j in f: |
| 82 | 86 | m = re.split('-|:',j,2) |
| 83 | − if long(m[0], 16) <= phys_addr <= long(m[1], 16): | |
| 87 | + if int(m[0], 16) <= phys_addr <= int(m[1], 16): | |
| 84 | 88 | return m[2] |
| 85 | 89 | return "N/A" |
| 86 | 90 | |