Commit e4d053dd authored by Tony Jones's avatar Tony Jones Committed by Arnaldo Carvalho de Melo

perf script python: Add Python3 support to mem-phys-addr.py

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
Signed-off-by: default avatarTony Jones <tonyj@suse.de>
Link: http://lkml.kernel.org/r/20190222230619.17887-8-tonyj@suse.deSigned-off-by: default avatarSeeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 9b2700ef
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
# Copyright (c) 2018, Intel Corporation. # Copyright (c) 2018, Intel Corporation.
from __future__ import division from __future__ import division
from __future__ import print_function
import os import os
import sys import sys
import struct import struct
...@@ -31,21 +33,23 @@ def parse_iomem(): ...@@ -31,21 +33,23 @@ def parse_iomem():
for i, j in enumerate(f): for i, j in enumerate(f):
m = re.split('-|:',j,2) m = re.split('-|:',j,2)
if m[2].strip() == 'System RAM': if m[2].strip() == 'System RAM':
system_ram.append(long(m[0], 16)) system_ram.append(int(m[0], 16))
system_ram.append(long(m[1], 16)) system_ram.append(int(m[1], 16))
if m[2].strip() == 'Persistent Memory': if m[2].strip() == 'Persistent Memory':
pmem.append(long(m[0], 16)) pmem.append(int(m[0], 16))
pmem.append(long(m[1], 16)) pmem.append(int(m[1], 16))
def print_memory_type(): def print_memory_type():
print "Event: %s" % (event_name) print("Event: %s" % (event_name))
print "%-40s %10s %10s\n" % ("Memory type", "count", "percentage"), print("%-40s %10s %10s\n" % ("Memory type", "count", "percentage"), end='')
print "%-40s %10s %10s\n" % ("----------------------------------------", \ print("%-40s %10s %10s\n" % ("----------------------------------------",
"-----------", "-----------"), "-----------", "-----------"),
end='');
total = sum(load_mem_type_cnt.values()) total = sum(load_mem_type_cnt.values())
for mem_type, count in sorted(load_mem_type_cnt.most_common(), \ for mem_type, count in sorted(load_mem_type_cnt.most_common(), \
key = lambda(k, v): (v, k), reverse = True): key = lambda kv: (kv[1], kv[0]), reverse = True):
print "%-40s %10d %10.1f%%\n" % (mem_type, count, 100 * count / total), print("%-40s %10d %10.1f%%\n" % (mem_type, count, 100 * count / total),
end='')
def trace_begin(): def trace_begin():
parse_iomem() parse_iomem()
...@@ -80,7 +84,7 @@ def find_memory_type(phys_addr): ...@@ -80,7 +84,7 @@ def find_memory_type(phys_addr):
f.seek(0, 0) f.seek(0, 0)
for j in f: for j in f:
m = re.split('-|:',j,2) m = re.split('-|:',j,2)
if long(m[0], 16) <= phys_addr <= long(m[1], 16): if int(m[0], 16) <= phys_addr <= int(m[1], 16):
return m[2] return m[2]
return "N/A" return "N/A"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment