From 67bba4cec87e2521f840944367f6d82c9aff2b9d Mon Sep 17 00:00:00 2001 From: lihongjiang Date: Wed, 26 Feb 2020 11:08:35 +0800 Subject: [PATCH 1/2] test --- 0001-change-script-from-py2-to-py3.patch | 1897 ++++++++++++++++++++++ 1 file changed, 1897 insertions(+) create mode 100644 0001-change-script-from-py2-to-py3.patch diff --git a/0001-change-script-from-py2-to-py3.patch b/0001-change-script-from-py2-to-py3.patch new file mode 100644 index 0000000..0536961 --- /dev/null +++ b/0001-change-script-from-py2-to-py3.patch @@ -0,0 +1,1897 @@ +Subject: [PATCH] [PATCH openEuler-1.0] : arm64/scripts: covert scripts from py2 to py3 + +euler inclusion +category:scripts +bugzilla:NA +CVE:NA +--- +Modify whole python2 scripts to python3, to remove the python2 dependencies. + +Signed-off-by:lihongjiang +--- + Documentation/networking/cxacru-cf.py | 2 +- + Documentation/target/tcm_mod_builder.py | 44 ++-- + Documentation/trace/postprocess/decode_msr.py | 4 +- + arch/ia64/scripts/unwcheck.py | 10 +- + drivers/staging/greybus/tools/lbtest | 6 +- + scripts/bloat-o-meter | 12 +- + scripts/check-kabi | 34 +-- + scripts/diffconfig | 14 +- + scripts/show_delta | 10 +- + scripts/spdxcheck.py | 2 +- + scripts/tracing/draw_functrace.py | 4 +- + tools/hv/lsvmbus | 14 +- + tools/kvm/kvm_stat/kvm_stat | 24 +- + tools/perf/python/tracepoint.py | 6 +- + tools/perf/python/twatch.py | 6 +- + tools/perf/scripts/python/call-graph-from-sql.py | 10 +- + tools/perf/scripts/python/sched-migration.py | 6 +- + tools/perf/scripts/python/stat-cpi.py | 4 +- + tools/perf/tests/attr.py | 36 +-- + tools/perf/util/setup.py | 4 +- + tools/power/pm-graph/bootgraph.py | 62 +++--- + tools/power/pm-graph/sleepgraph.py | 244 ++++++++++----------- + .../x86/intel_pstate_tracer/intel_pstate_tracer.py | 4 +- + 23 files changed, 281 insertions(+), 281 deletions(-) + +diff --git a/Documentation/networking/cxacru-cf.py b/Documentation/networking/cxacru-cf.py +index b41d298..1b960fb 100644 +--- a/Documentation/networking/cxacru-cf.py ++++ b/Documentation/networking/cxacru-cf.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2009 Simon Arlott + # + # This program is free software; you can redistribute it and/or modify it +diff --git a/Documentation/target/tcm_mod_builder.py b/Documentation/target/tcm_mod_builder.py +index 94bf694..3180283 100755 +--- a/Documentation/target/tcm_mod_builder.py ++++ b/Documentation/target/tcm_mod_builder.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD + # + # Copyright (c) 2010 Rising Tide Systems +@@ -20,7 +20,7 @@ fabric_mod_port = "" + fabric_mod_init_port = "" + + def tcm_mod_err(msg): +- print msg ++ print(msg) + sys.exit(1) + + def tcm_mod_create_module_subdir(fabric_mod_dir_var): +@@ -28,7 +28,7 @@ def tcm_mod_create_module_subdir(fabric_mod_dir_var): + if os.path.isdir(fabric_mod_dir_var) == True: + return 1 + +- print "Creating fabric_mod_dir: " + fabric_mod_dir_var ++ print("Creating fabric_mod_dir: " + fabric_mod_dir_var) + ret = os.mkdir(fabric_mod_dir_var) + if ret: + tcm_mod_err("Unable to mkdir " + fabric_mod_dir_var) +@@ -41,7 +41,7 @@ def tcm_mod_build_FC_include(fabric_mod_dir_var, fabric_mod_name): + buf = "" + + f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h" +- print "Writing file: " + f ++ print("Writing file: " + f) + + p = open(f, 'w'); + if not p: +@@ -85,7 +85,7 @@ def tcm_mod_build_SAS_include(fabric_mod_dir_var, fabric_mod_name): + buf = "" + + f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h" +- print "Writing file: " + f ++ print("Writing file: " + f) + + p = open(f, 'w'); + if not p: +@@ -128,7 +128,7 @@ def tcm_mod_build_iSCSI_include(fabric_mod_dir_var, fabric_mod_name): + buf = "" + + f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h" +- print "Writing file: " + f ++ print("Writing file: " + f) + + p = open(f, 'w'); + if not p: +@@ -172,7 +172,7 @@ def tcm_mod_build_base_includes(proto_ident, fabric_mod_dir_val, fabric_mod_name + elif proto_ident == "iSCSI": + tcm_mod_build_iSCSI_include(fabric_mod_dir_val, fabric_mod_name) + else: +- print "Unsupported proto_ident: " + proto_ident ++ print("Unsupported proto_ident: " + proto_ident) + sys.exit(1) + + return +@@ -181,7 +181,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): + buf = "" + + f = fabric_mod_dir_var + "/" + fabric_mod_name + "_configfs.c" +- print "Writing file: " + f ++ print("Writing file: " + f) + + p = open(f, 'w'); + if not p: +@@ -340,7 +340,7 @@ def tcm_mod_scan_fabric_ops(tcm_dir): + + fabric_ops_api = tcm_dir + "include/target/target_core_fabric.h" + +- print "Using tcm_mod_scan_fabric_ops: " + fabric_ops_api ++ print("Using tcm_mod_scan_fabric_ops: " + fabric_ops_api) + process_fo = 0; + + p = open(fabric_ops_api, 'r') +@@ -376,14 +376,14 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): + bufi = "" + + f = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.c" +- print "Writing file: " + f ++ print("Writing file: " + f) + + p = open(f, 'w') + if not p: + tcm_mod_err("Unable to open file: " + f) + + fi = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.h" +- print "Writing file: " + fi ++ print("Writing file: " + fi) + + pi = open(fi, 'w') + if not pi: +@@ -545,7 +545,7 @@ def tcm_mod_build_kbuild(fabric_mod_dir_var, fabric_mod_name): + + buf = "" + f = fabric_mod_dir_var + "/Makefile" +- print "Writing file: " + f ++ print("Writing file: " + f) + + p = open(f, 'w') + if not p: +@@ -566,7 +566,7 @@ def tcm_mod_build_kconfig(fabric_mod_dir_var, fabric_mod_name): + + buf = "" + f = fabric_mod_dir_var + "/Kconfig" +- print "Writing file: " + f ++ print("Writing file: " + f) + + p = open(f, 'w') + if not p: +@@ -611,20 +611,20 @@ def main(modname, proto_ident): + + tcm_dir = os.getcwd(); + tcm_dir += "/../../" +- print "tcm_dir: " + tcm_dir ++ print("tcm_dir: " + tcm_dir) + fabric_mod_name = modname + fabric_mod_dir = tcm_dir + "drivers/target/" + fabric_mod_name +- print "Set fabric_mod_name: " + fabric_mod_name +- print "Set fabric_mod_dir: " + fabric_mod_dir +- print "Using proto_ident: " + proto_ident ++ print("Set fabric_mod_name: " + fabric_mod_name) ++ print("Set fabric_mod_dir: " + fabric_mod_dir) ++ print("Using proto_ident: " + proto_ident) + + if proto_ident != "FC" and proto_ident != "SAS" and proto_ident != "iSCSI": +- print "Unsupported proto_ident: " + proto_ident ++ print("Unsupported proto_ident: " + proto_ident) + sys.exit(1) + + ret = tcm_mod_create_module_subdir(fabric_mod_dir) + if ret: +- print "tcm_mod_create_module_subdir() failed because module already exists!" ++ print("tcm_mod_create_module_subdir() failed because module already exists!") + sys.exit(1) + + tcm_mod_build_base_includes(proto_ident, fabric_mod_dir, fabric_mod_name) +@@ -634,11 +634,11 @@ def main(modname, proto_ident): + tcm_mod_build_kbuild(fabric_mod_dir, fabric_mod_name) + tcm_mod_build_kconfig(fabric_mod_dir, fabric_mod_name) + +- input = raw_input("Would you like to add " + fabric_mod_name + " to drivers/target/Makefile..? [yes,no]: ") ++ input = input("Would you like to add " + fabric_mod_name + " to drivers/target/Makefile..? [yes,no]: ") + if input == "yes" or input == "y": + tcm_mod_add_kbuild(tcm_dir, fabric_mod_name) + +- input = raw_input("Would you like to add " + fabric_mod_name + " to drivers/target/Kconfig..? [yes,no]: ") ++ input = input("Would you like to add " + fabric_mod_name + " to drivers/target/Kconfig..? [yes,no]: ") + if input == "yes" or input == "y": + tcm_mod_add_kconfig(tcm_dir, fabric_mod_name) + +@@ -655,7 +655,7 @@ parser.add_option('-p', '--protoident', help='Protocol Ident', dest='protoident' + mandatories = ['modname', 'protoident'] + for m in mandatories: + if not opts.__dict__[m]: +- print "mandatory option is missing\n" ++ print("mandatory option is missing\n") + parser.print_help() + exit(-1) + +diff --git a/Documentation/trace/postprocess/decode_msr.py b/Documentation/trace/postprocess/decode_msr.py +index 0ab40e0..dc58c58 100644 +--- a/Documentation/trace/postprocess/decode_msr.py ++++ b/Documentation/trace/postprocess/decode_msr.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # add symbolic names to read_msr / write_msr in trace + # decode_msr msr-index.h < trace + import sys +@@ -32,6 +32,6 @@ for j in sys.stdin: + break + if r: + j = j.replace(" " + m.group(2), " " + r + "(" + m.group(2) + ")") +- print j, ++ print(j, end=' ') + + +diff --git a/arch/ia64/scripts/unwcheck.py b/arch/ia64/scripts/unwcheck.py +index c55276e..b7ecaf7 100644 +--- a/arch/ia64/scripts/unwcheck.py ++++ b/arch/ia64/scripts/unwcheck.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # SPDX-License-Identifier: GPL-2.0 + # + # Usage: unwcheck.py FILE +@@ -16,7 +16,7 @@ import re + import sys + + if len(sys.argv) != 2: +- print("Usage: %s FILE" % sys.argv[0]) ++ print(("Usage: %s FILE" % sys.argv[0])) + sys.exit(2) + + readelf = os.getenv("READELF", "readelf") +@@ -29,7 +29,7 @@ def check_func (func, slots, rlen_sum): + global num_errors + num_errors += 1 + if not func: func = "[%#x-%#x]" % (start, end) +- print("ERROR: %s: %lu slots, total region length = %lu" % (func, slots, rlen_sum)) ++ print(("ERROR: %s: %lu slots, total region length = %lu" % (func, slots, rlen_sum))) + return + + num_funcs = 0 +@@ -55,11 +55,11 @@ for line in os.popen("%s -u %s" % (readelf, sys.argv[1])): + check_func(func, slots, rlen_sum) + + if num_errors == 0: +- print("No errors detected in %u functions." % num_funcs) ++ print(("No errors detected in %u functions." % num_funcs)) + else: + if num_errors > 1: + err="errors" + else: + err="error" +- print("%u %s detected in %u functions." % (num_errors, err, num_funcs)) ++ print(("%u %s detected in %u functions." % (num_errors, err, num_funcs))) + sys.exit(1) +diff --git a/drivers/staging/greybus/tools/lbtest b/drivers/staging/greybus/tools/lbtest +index 47c4812..ed71c6e 100755 +--- a/drivers/staging/greybus/tools/lbtest ++++ b/drivers/staging/greybus/tools/lbtest +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # SPDX-License-Identifier: BSD-3-Clause + + # Copyright (c) 2015 Google, Inc. +@@ -28,7 +28,7 @@ + # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-from __future__ import print_function ++ + import csv + import datetime + import sys +@@ -161,7 +161,7 @@ def main(): + if len(sys.argv) < 5: + usage() + +- if sys.argv[1] in dict.keys(): ++ if sys.argv[1] in list(dict.keys()): + loopback_run(sys.argv[1], sys.argv[2], int(sys.argv[3]), sys.argv[4]) + else: + usage() +diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter +index a923f05..cbd267d 100755 +--- a/scripts/bloat-o-meter ++++ b/scripts/bloat-o-meter +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Copyright 2004 Matt Mackall + # +@@ -77,17 +77,17 @@ def print_result(symboltype, symbolformat, argc): + grow, shrink, add, remove, up, down, delta, old, new, otot, ntot = \ + calc(sys.argv[argc - 1], sys.argv[argc], symbolformat) + +- print("add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \ +- (add, remove, grow, shrink, up, -down, up-down)) +- print("%-40s %7s %7s %+7s" % (symboltype, "old", "new", "delta")) ++ print(("add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \ ++ (add, remove, grow, shrink, up, -down, up-down))) ++ print(("%-40s %7s %7s %+7s" % (symboltype, "old", "new", "delta"))) + for d, n in delta: +- if d: print("%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)) ++ if d: print(("%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d))) + + if otot: + percent = (ntot - otot) * 100.0 / otot + else: + percent = 0 +- print("Total: Before=%d, After=%d, chg %+.2f%%" % (otot, ntot, percent)) ++ print(("Total: Before=%d, After=%d, chg %+.2f%%" % (otot, ntot, percent))) + + if sys.argv[1] == "-c": + print_result("Function", "tT", 3) +diff --git a/scripts/check-kabi b/scripts/check-kabi +index e3ec97c..b173422 100755 +--- a/scripts/check-kabi ++++ b/scripts/check-kabi +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # SPDX-License-Identifier: GPL-2.0 + # + # check-kabi - Red Hat kABI reference checking tool +@@ -71,7 +71,7 @@ def check_kabi(symvers,kabi): + + for symbol in kabi: + abi_hash,abi_sym,abi_dir,abi_type = string.split(kabi[symbol]) +- if symvers.has_key(symbol): ++ if symbol in symvers: + sym_hash,sym_sym,sym_dir,sym_type = string.split(symvers[symbol]) + if abi_hash != sym_hash: + fail=1 +@@ -85,23 +85,23 @@ def check_kabi(symvers,kabi): + changed_symbols.append(symbol) + + if fail: +- print "*** ERROR - ABI BREAKAGE WAS DETECTED ***" +- print "" +- print "The following symbols have been changed (this will cause an ABI breakage):" +- print "" ++ print("*** ERROR - ABI BREAKAGE WAS DETECTED ***") ++ print("") ++ print("The following symbols have been changed (this will cause an ABI breakage):") ++ print("") + for symbol in changed_symbols: +- print symbol +- print "" ++ print(symbol) ++ print("") + + if warn: +- print "*** WARNING - ABI SYMBOLS MOVED ***" +- print "" +- print "The following symbols moved (typically caused by moving a symbol from being" +- print "provided by the kernel vmlinux out to a loadable module):" +- print "" ++ print("*** WARNING - ABI SYMBOLS MOVED ***") ++ print("") ++ print("The following symbols moved (typically caused by moving a symbol from being") ++ print("provided by the kernel vmlinux out to a loadable module):") ++ print("") + for symbol in moved_symbols: +- print symbol +- print "" ++ print(symbol) ++ print("") + + """Halt the build, if we got errors and/or warnings. In either case, + double-checkig is required to avoid introducing / concealing +@@ -111,12 +111,12 @@ def check_kabi(symvers,kabi): + sys.exit(0) + + def usage(): +- print """ ++ print(""" + check-kabi: check Module.kabi and Module.symvers files. + + check-kabi [ -k Module.kabi ] [ -s Module.symvers ] + +-""" ++""") + + if __name__ == "__main__": + +diff --git a/scripts/diffconfig b/scripts/diffconfig +index 89abf77..5c07d57 100755 +--- a/scripts/diffconfig ++++ b/scripts/diffconfig +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # SPDX-License-Identifier: GPL-2.0 + # + # diffconfig - a tool to compare .config files. +@@ -54,16 +54,16 @@ def print_config(op, config, value, new_value): + if merge_style: + if new_value: + if new_value=="n": +- print("# CONFIG_%s is not set" % config) ++ print(("# CONFIG_%s is not set" % config)) + else: +- print("CONFIG_%s=%s" % (config, new_value)) ++ print(("CONFIG_%s=%s" % (config, new_value))) + else: + if op=="-": +- print("-%s %s" % (config, value)) ++ print(("-%s %s" % (config, value))) + elif op=="+": +- print("+%s %s" % (config, new_value)) ++ print(("+%s %s" % (config, new_value))) + else: +- print(" %s %s -> %s" % (config, value, new_value)) ++ print((" %s %s -> %s" % (config, value, new_value))) + + def main(): + global merge_style +@@ -98,7 +98,7 @@ def main(): + b = readconfig(open(configb_filename)) + except (IOError): + e = sys.exc_info()[1] +- print("I/O error[%s]: %s\n" % (e.args[0],e.args[1])) ++ print(("I/O error[%s]: %s\n" % (e.args[0],e.args[1]))) + usage() + + # print items in a but not b (accumulate, sort and print) +diff --git a/scripts/show_delta b/scripts/show_delta +index 5b36500..78b4b73 100755 +--- a/scripts/show_delta ++++ b/scripts/show_delta +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # show_deltas: Read list of printk messages instrumented with + # time data, and format with time deltas. +@@ -94,11 +94,11 @@ def main(): + try: + lines = open(filein,"r").readlines() + except: +- print ("Problem opening file: %s" % filein) ++ print(("Problem opening file: %s" % filein)) + sys.exit(1) + + if base_str: +- print ('base= "%s"' % base_str) ++ print(('base= "%s"' % base_str)) + # assume a numeric base. If that fails, try searching + # for a matching line. + try: +@@ -117,12 +117,12 @@ def main(): + # stop at first match + break + if not found: +- print ('Couldn\'t find line matching base pattern "%s"' % base_str) ++ print(('Couldn\'t find line matching base pattern "%s"' % base_str)) + sys.exit(1) + else: + base_time = 0.0 + + for line in lines: +- print (convert_line(line, base_time),) ++ print((convert_line(line, base_time),)) + + main() +diff --git a/scripts/spdxcheck.py b/scripts/spdxcheck.py +index e559c62..1b88b6b 100755 +--- a/scripts/spdxcheck.py ++++ b/scripts/spdxcheck.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # SPDX-License-Identifier: GPL-2.0 + # Copyright Thomas Gleixner + +diff --git a/scripts/tracing/draw_functrace.py b/scripts/tracing/draw_functrace.py +index 9b6dd4f..87974cc 100755 +--- a/scripts/tracing/draw_functrace.py ++++ b/scripts/tracing/draw_functrace.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + """ + Copyright 2008 (c) Frederic Weisbecker +@@ -123,7 +123,7 @@ def main(): + tree = tree.getParent(caller) + tree = tree.calls(callee, calltime) + +- print(CallTree.ROOT) ++ print((CallTree.ROOT)) + + if __name__ == "__main__": + main() +diff --git a/tools/hv/lsvmbus b/tools/hv/lsvmbus +index 099f2c4..80517ab 100644 +--- a/tools/hv/lsvmbus ++++ b/tools/hv/lsvmbus +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # SPDX-License-Identifier: GPL-2.0 + + import os +@@ -17,7 +17,7 @@ if options.verbose is not None: + + vmbus_sys_path = '/sys/bus/vmbus/devices' + if not os.path.isdir(vmbus_sys_path): +- print("%s doesn't exist: exiting..." % vmbus_sys_path) ++ print(("%s doesn't exist: exiting..." % vmbus_sys_path)) + exit(-1) + + vmbus_dev_dict = { +@@ -96,17 +96,17 @@ format2 = '%2s: Class_ID = %s - %s\n\tDevice_ID = %s\n\tSysfs path: %s\n%s' + + for d in vmbus_dev_list: + if verbose == 0: +- print(('VMBUS ID ' + format0) % (d.vmbus_id, d.dev_desc)) ++ print((('VMBUS ID ' + format0) % (d.vmbus_id, d.dev_desc))) + elif verbose == 1: +- print( ++ print(( + ('VMBUS ID ' + format1) % + (d.vmbus_id, d.class_id, d.dev_desc, d.chn_vp_mapping) +- ) ++ )) + else: +- print( ++ print(( + ('VMBUS ID ' + format2) % + ( + d.vmbus_id, d.class_id, d.dev_desc, + d.device_id, d.sysfs_path, d.chn_vp_mapping + ) +- ) ++ )) +diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat +index f6ca0a2..054c80f 100755 +--- a/tools/kvm/kvm_stat/kvm_stat ++++ b/tools/kvm/kvm_stat/kvm_stat +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # top-like utility for displaying kvm statistics + # +@@ -19,7 +19,7 @@ Three different ways of output formatting are available: + + The data is sampled from the KVM's debugfs entries and its perf events. + """ +-from __future__ import print_function ++ + + import curses + import sys +@@ -388,9 +388,9 @@ class Group(object): + """ + length = 8 * (1 + len(self.events)) + read_format = 'xxxxxxxx' + 'Q' * len(self.events) +- return dict(zip([event.name for event in self.events], ++ return dict(list(zip([event.name for event in self.events], + struct.unpack(read_format, +- os.read(self.events[0].fd, length)))) ++ os.read(self.events[0].fd, length))))) + + + class Event(object): +@@ -600,8 +600,8 @@ class TracepointProvider(Provider): + integers.append(int(member)) + else: + int_range = member.split('-') +- integers.extend(range(int(int_range[0]), +- int(int_range[1]) + 1)) ++ integers.extend(list(range(int(int_range[0]), ++ int(int_range[1]) + 1))) + + return integers + +@@ -704,7 +704,7 @@ class TracepointProvider(Provider): + """Returns 'event name: current value' for all enabled events.""" + ret = defaultdict(int) + for group in self.group_leaders: +- for name, val in group.read().items(): ++ for name, val in list(group.read().items()): + if name not in self._fields: + continue + parent = ARCH.tracepoint_is_child(name) +@@ -771,7 +771,7 @@ class DebugfsProvider(Provider): + if len(vms) == 0: + self.do_read = False + +- self.paths = list(filter(lambda x: "{}-".format(pid) in x, vms)) ++ self.paths = list([x for x in vms if "{}-".format(pid) in x]) + + else: + self.paths = [] +@@ -959,7 +959,7 @@ class Stats(object): + for provider in self.providers: + if isinstance(provider, DebugfsProvider): + for key in provider.fields: +- if key in self.values.keys(): ++ if key in list(self.values.keys()): + del self.values[key] + else: + oldvals = self.values.copy() +@@ -1165,7 +1165,7 @@ class Tui(object): + sorted_items = [] + # we can't rule out child events to appear prior to parents even + # when sorted - separate out all children first, and add in later +- for key, values in sorted(stats.items(), key=sortkey, ++ for key, values in sorted(list(stats.items()), key=sortkey, + reverse=True): + if values == (0, 0): + continue +@@ -1201,7 +1201,7 @@ class Tui(object): + stats = self.stats.get(self._display_guests) + total = 0. + ctotal = 0. +- for key, values in stats.items(): ++ for key, values in list(stats.items()): + if self._display_guests: + if self.get_gname_from_pid(key): + total += values.value +@@ -1699,7 +1699,7 @@ def main(): + if options.fields == 'help': + stats.fields_filter = None + event_list = [] +- for key in stats.get().keys(): ++ for key in list(stats.get().keys()): + event_list.append(key.split('(', 1)[0]) + sys.stdout.write(' ' + '\n '.join(sorted(set(event_list))) + '\n') + sys.exit(0) +diff --git a/tools/perf/python/tracepoint.py b/tools/perf/python/tracepoint.py +index eb76f65..4afbeeb 100755 +--- a/tools/perf/python/tracepoint.py ++++ b/tools/perf/python/tracepoint.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python ++#!/usr/bin/python3 + # SPDX-License-Identifier: GPL-2.0 + # -*- python -*- + # -*- coding: utf-8 -*- +@@ -34,7 +34,7 @@ def main(): + if not isinstance(event, perf.sample_event): + continue + +- print "time %u prev_comm=%s prev_pid=%d prev_prio=%d prev_state=0x%x ==> next_comm=%s next_pid=%d next_prio=%d" % ( ++ print("time %u prev_comm=%s prev_pid=%d prev_prio=%d prev_state=0x%x ==> next_comm=%s next_pid=%d next_prio=%d" % ( + event.sample_time, + event.prev_comm, + event.prev_pid, +@@ -42,7 +42,7 @@ def main(): + event.prev_state, + event.next_comm, + event.next_pid, +- event.next_prio) ++ event.next_prio)) + + if __name__ == '__main__': + main() +diff --git a/tools/perf/python/twatch.py b/tools/perf/python/twatch.py +index 0a29c5c..987ddf7 100755 +--- a/tools/perf/python/twatch.py ++++ b/tools/perf/python/twatch.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python ++#!/usr/bin/python3 + # -*- python -*- + # -*- coding: utf-8 -*- + # twatch - Experimental use of the perf python interface +@@ -42,10 +42,10 @@ def main(context_switch = 0, thread = -1): + event = evlist.read_on_cpu(cpu) + if not event: + continue +- print("cpu: {0}, pid: {1}, tid: {2} {3}".format(event.sample_cpu, ++ print(("cpu: {0}, pid: {1}, tid: {2} {3}".format(event.sample_cpu, + event.sample_pid, + event.sample_tid, +- event)) ++ event))) + + if __name__ == '__main__': + """ +diff --git a/tools/perf/scripts/python/call-graph-from-sql.py b/tools/perf/scripts/python/call-graph-from-sql.py +index b494a67..d30af15 100644 +--- a/tools/perf/scripts/python/call-graph-from-sql.py ++++ b/tools/perf/scripts/python/call-graph-from-sql.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2 ++#!/usr/bin/python3 + # call-graph-from-sql.py: create call-graph from sql database + # Copyright (c) 2014-2017, Intel Corporation. + # +@@ -84,7 +84,7 @@ class TreeItem(): + ret = query.exec_('SELECT id, comm FROM comms') + if not ret: + raise Exception("Query failed: " + query.lastError().text()) +- while query.next(): ++ while next(query): + if not query.value(0): + continue + child_item = TreeItem(self.db, self.child_count, self) +@@ -102,7 +102,7 @@ class TreeItem(): + ret = query.exec_('SELECT thread_id, ( SELECT pid FROM threads WHERE id = thread_id ), ( SELECT tid FROM threads WHERE id = thread_id ) FROM comm_threads WHERE comm_id = ' + str(comm_id)) + if not ret: + raise Exception("Query failed: " + query.lastError().text()) +- while query.next(): ++ while next(query): + child_item = TreeItem(self.db, self.child_count, self) + self.child_items.append(child_item) + self.child_count += 1 +@@ -172,7 +172,7 @@ class TreeItem(): + total_branch_count = 0 + time = 0 + total_time = 0 +- while query.next(): ++ while next(query): + if query.value(1) == last_call_path_id: + count += 1 + branch_count += query.value(2) +@@ -292,7 +292,7 @@ class MainWindow(QMainWindow): + + if __name__ == '__main__': + if (len(sys.argv) < 2): +- print >> sys.stderr, "Usage is: call-graph-from-sql.py " ++ print("Usage is: call-graph-from-sql.py ", file=sys.stderr) + raise Exception("Too few arguments") + + dbname = sys.argv[1] +diff --git a/tools/perf/scripts/python/sched-migration.py b/tools/perf/scripts/python/sched-migration.py +index 3473e7f..981562c 100644 +--- a/tools/perf/scripts/python/sched-migration.py ++++ b/tools/perf/scripts/python/sched-migration.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Cpu task migration overview toy + # +@@ -9,14 +9,14 @@ + # This software is distributed under the terms of the GNU General + # Public License ("GPL") version 2 as published by the Free Software + # Foundation. +-from __future__ import print_function ++ + + import os + import sys + + from collections import defaultdict + try: +- from UserList import UserList ++ from collections import UserList + except ImportError: + # Python 3: UserList moved to the collections package + from collections import UserList +diff --git a/tools/perf/scripts/python/stat-cpi.py b/tools/perf/scripts/python/stat-cpi.py +index 8410672..246ce58 100644 +--- a/tools/perf/scripts/python/stat-cpi.py ++++ b/tools/perf/scripts/python/stat-cpi.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # SPDX-License-Identifier: GPL-2.0 + + data = {} +@@ -59,7 +59,7 @@ def stat__interval(time): + if ins != 0: + cpi = cyc/float(ins) + +- print "%15f: cpu %d, thread %d -> cpi %f (%d/%d)" % (time/(float(1000000000)), cpu, thread, cpi, cyc, ins) ++ print("%15f: cpu %d, thread %d -> cpi %f (%d/%d)" % (time/(float(1000000000)), cpu, thread, cpi, cyc, ins)) + + def trace_end(): + pass +diff --git a/tools/perf/tests/attr.py b/tools/perf/tests/attr.py +index 44090a9..42c241e 100644 +--- a/tools/perf/tests/attr.py ++++ b/tools/perf/tests/attr.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python ++#!/usr/bin/python3 + # SPDX-License-Identifier: GPL-2.0 + + import os +@@ -8,7 +8,7 @@ import optparse + import tempfile + import logging + import shutil +-import ConfigParser ++import configparser + + def data_equal(a, b): + # Allow multiple values in assignment separated by '|' +@@ -100,20 +100,20 @@ class Event(dict): + def equal(self, other): + for t in Event.terms: + log.debug(" [%s] %s %s" % (t, self[t], other[t])); +- if not self.has_key(t) or not other.has_key(t): ++ if t not in self or t not in other: + return False + if not data_equal(self[t], other[t]): + return False + return True + + def optional(self): +- if self.has_key('optional') and self['optional'] == '1': ++ if 'optional' in self and self['optional'] == '1': + return True + return False + + def diff(self, other): + for t in Event.terms: +- if not self.has_key(t) or not other.has_key(t): ++ if t not in self or t not in other: + continue + if not data_equal(self[t], other[t]): + log.warning("expected %s=%s, got %s" % (t, self[t], other[t])) +@@ -134,7 +134,7 @@ class Event(dict): + # - expected values assignments + class Test(object): + def __init__(self, path, options): +- parser = ConfigParser.SafeConfigParser() ++ parser = configparser.SafeConfigParser() + parser.read(path) + + log.warning("running '%s'" % path) +@@ -193,7 +193,7 @@ class Test(object): + return True + + def load_events(self, path, events): +- parser_event = ConfigParser.SafeConfigParser() ++ parser_event = configparser.SafeConfigParser() + parser_event.read(path) + + # The event record section header contains 'event' word, +@@ -207,7 +207,7 @@ class Test(object): + # Read parent event if there's any + if (':' in section): + base = section[section.index(':') + 1:] +- parser_base = ConfigParser.SafeConfigParser() ++ parser_base = configparser.SafeConfigParser() + parser_base.read(self.test_dir + '/' + base) + base_items = parser_base.items('event') + +@@ -236,11 +236,11 @@ class Test(object): + + # For each expected event find all matching + # events in result. Fail if there's not any. +- for exp_name, exp_event in expect.items(): ++ for exp_name, exp_event in list(expect.items()): + exp_list = [] + res_event = {} + log.debug(" matching [%s]" % exp_name) +- for res_name, res_event in result.items(): ++ for res_name, res_event in list(result.items()): + log.debug(" to [%s]" % res_name) + if (exp_event.equal(res_event)): + exp_list.append(res_name) +@@ -265,7 +265,7 @@ class Test(object): + + # For each defined group in the expected events + # check we match the same group in the result. +- for exp_name, exp_event in expect.items(): ++ for exp_name, exp_event in list(expect.items()): + group = exp_event.group + + if (group == ''): +@@ -282,12 +282,12 @@ class Test(object): + log.debug(" matched") + + def resolve_groups(self, events): +- for name, event in events.items(): ++ for name, event in list(events.items()): + group_fd = event['group_fd']; + if group_fd == '-1': + continue; + +- for iname, ievent in events.items(): ++ for iname, ievent in list(events.items()): + if (ievent['fd'] == group_fd): + event.group = iname + log.debug('[%s] has group leader [%s]' % (name, iname)) +@@ -322,9 +322,9 @@ def run_tests(options): + for f in glob.glob(options.test_dir + '/' + options.test): + try: + Test(f, options).run() +- except Unsup, obj: ++ except Unsup as obj: + log.warning("unsupp %s" % obj.getMsg()) +- except Notest, obj: ++ except Notest as obj: + log.warning("skipped %s" % obj.getMsg()) + + def setup_log(verbose): +@@ -373,7 +373,7 @@ def main(): + setup_log(options.verbose) + + if not options.test_dir: +- print 'FAILED no -d option specified' ++ print('FAILED no -d option specified') + sys.exit(-1) + + if not options.test: +@@ -382,8 +382,8 @@ def main(): + try: + run_tests(options) + +- except Fail, obj: +- print "FAILED %s" % obj.getMsg(); ++ except Fail as obj: ++ print("FAILED %s" % obj.getMsg()); + sys.exit(-1) + + sys.exit(0) +diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py +index 1942f6d..383a9fb 100644 +--- a/tools/perf/util/setup.py ++++ b/tools/perf/util/setup.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + from os import getenv + from subprocess import Popen, PIPE +@@ -49,7 +49,7 @@ ext_sources = [f.strip() for f in open('util/python-ext-sources') + if len(f.strip()) > 0 and f[0] != '#'] + + # use full paths with source files +-ext_sources = list(map(lambda x: '%s/%s' % (src_perf, x) , ext_sources)) ++ext_sources = list(['%s/%s' % (src_perf, x) for x in ext_sources]) + + perf = Extension('perf', + sources = ext_sources, +diff --git a/tools/power/pm-graph/bootgraph.py b/tools/power/pm-graph/bootgraph.py +index 8ee626c..9a174e0 100755 +--- a/tools/power/pm-graph/bootgraph.py ++++ b/tools/power/pm-graph/bootgraph.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2 ++#!/usr/bin/python3 + # + # Tool for analyzing boot timing + # Copyright (c) 2013, Intel Corporation. +@@ -141,13 +141,13 @@ class SystemValues(aslib.SystemValues): + if arg in ['-h', '-v', '-cronjob', '-reboot', '-verbose']: + continue + elif arg in ['-o', '-dmesg', '-ftrace', '-func']: +- args.next() ++ next(args) + continue + elif arg == '-result': +- cmdline += ' %s "%s"' % (arg, os.path.abspath(args.next())) ++ cmdline += ' %s "%s"' % (arg, os.path.abspath(next(args))) + continue + elif arg == '-cgskip': +- file = self.configFile(args.next()) ++ file = self.configFile(next(args)) + cmdline += ' %s "%s"' % (arg, os.path.abspath(file)) + continue + cmdline += ' '+arg +@@ -157,11 +157,11 @@ class SystemValues(aslib.SystemValues): + return cmdline + def manualRebootRequired(self): + cmdline = self.kernelParams() +- print 'To generate a new timeline manually, follow these steps:\n' +- print '1. Add the CMDLINE string to your kernel command line.' +- print '2. Reboot the system.' +- print '3. After reboot, re-run this tool with the same arguments but no command (w/o -reboot or -manual).\n' +- print 'CMDLINE="%s"' % cmdline ++ print('To generate a new timeline manually, follow these steps:\n') ++ print('1. Add the CMDLINE string to your kernel command line.') ++ print('2. Reboot the system.') ++ print('3. After reboot, re-run this tool with the same arguments but no command (w/o -reboot or -manual).\n') ++ print('CMDLINE="%s"' % cmdline) + sys.exit() + def blGrub(self): + blcmd = '' +@@ -431,7 +431,7 @@ def parseTraceLog(data): + if len(cg.list) < 1 or cg.invalid or (cg.end - cg.start == 0): + continue + if(not cg.postProcess()): +- print('Sanity check failed for %s-%d' % (proc, pid)) ++ print(('Sanity check failed for %s-%d' % (proc, pid))) + continue + # match cg data to devices + devname = data.deviceMatch(pid, cg) +@@ -442,8 +442,8 @@ def parseTraceLog(data): + sysvals.vprint('%s callgraph found for %s %s-%d [%f - %f]' %\ + (kind, cg.name, proc, pid, cg.start, cg.end)) + elif len(cg.list) > 1000000: +- print 'WARNING: the callgraph found for %s is massive! (%d lines)' %\ +- (devname, len(cg.list)) ++ print('WARNING: the callgraph found for %s is massive! (%d lines)' %\ ++ (devname, len(cg.list))) + + # Function: retrieveLogs + # Description: +@@ -733,8 +733,8 @@ def updateCron(restore=False): + op.write('@reboot python %s\n' % sysvals.cronjobCmdString()) + op.close() + res = call([cmd, cronfile]) +- except Exception, e: +- print 'Exception: %s' % str(e) ++ except Exception as e: ++ print('Exception: %s' % str(e)) + shutil.move(backfile, cronfile) + res = -1 + if res != 0: +@@ -749,8 +749,8 @@ def updateGrub(restore=False): + try: + call(sysvals.blexec, stderr=PIPE, stdout=PIPE, + env={'PATH': '.:/sbin:/usr/sbin:/usr/bin:/sbin:/bin'}) +- except Exception, e: +- print 'Exception: %s\n' % str(e) ++ except Exception as e: ++ print('Exception: %s\n' % str(e)) + return + # extract the option and create a grub config without it + sysvals.rootUser(True) +@@ -796,8 +796,8 @@ def updateGrub(restore=False): + op.close() + res = call(sysvals.blexec) + os.remove(grubfile) +- except Exception, e: +- print 'Exception: %s' % str(e) ++ except Exception as e: ++ print('Exception: %s' % str(e)) + res = -1 + # cleanup + shutil.move(tempfile, grubfile) +@@ -821,7 +821,7 @@ def updateKernelParams(restore=False): + def doError(msg, help=False): + if help == True: + printHelp() +- print 'ERROR: %s\n' % msg ++ print('ERROR: %s\n' % msg) + sysvals.outputResult({'error':msg}) + sys.exit() + +@@ -830,7 +830,7 @@ def doError(msg, help=False): + # print out the help text + def printHelp(): + print('') +- print('%s v%s' % (sysvals.title, sysvals.version)) ++ print(('%s v%s' % (sysvals.title, sysvals.version))) + print('Usage: bootgraph ') + print('') + print('Description:') +@@ -895,7 +895,7 @@ if __name__ == '__main__': + printHelp() + sys.exit() + elif(arg == '-v'): +- print("Version %s" % sysvals.version) ++ print(("Version %s" % sysvals.version)) + sys.exit() + elif(arg == '-verbose'): + sysvals.verbose = True +@@ -912,13 +912,13 @@ if __name__ == '__main__': + sysvals.mincglen = aslib.getArgFloat('-mincg', args, 0.0, 10000.0) + elif(arg == '-cgfilter'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No callgraph functions supplied', True) + sysvals.setCallgraphFilter(val) + elif(arg == '-cgskip'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No file supplied', True) + if val.lower() in switchoff: +@@ -929,7 +929,7 @@ if __name__ == '__main__': + doError('%s does not exist' % cgskip) + elif(arg == '-bl'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No boot loader name supplied', True) + if val.lower() not in ['grub']: +@@ -942,7 +942,7 @@ if __name__ == '__main__': + sysvals.max_graph_depth = aslib.getArgInt('-maxdepth', args, 0, 1000) + elif(arg == '-func'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No filter functions supplied', True) + sysvals.useftrace = True +@@ -951,7 +951,7 @@ if __name__ == '__main__': + sysvals.setGraphFilter(val) + elif(arg == '-ftrace'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No ftrace file supplied', True) + if(os.path.exists(val) == False): +@@ -964,7 +964,7 @@ if __name__ == '__main__': + sysvals.cgexp = True + elif(arg == '-dmesg'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No dmesg file supplied', True) + if(os.path.exists(val) == False): +@@ -973,13 +973,13 @@ if __name__ == '__main__': + sysvals.dmesgfile = val + elif(arg == '-o'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No subdirectory name supplied', True) + sysvals.testdir = sysvals.setOutputFolder(val) + elif(arg == '-result'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No result file supplied', True) + sysvals.result = val +@@ -1013,10 +1013,10 @@ if __name__ == '__main__': + updateKernelParams() + elif cmd == 'flistall': + for f in sysvals.getBootFtraceFilterFunctions(): +- print f ++ print(f) + elif cmd == 'checkbl': + sysvals.getBootLoader() +- print 'Boot Loader: %s\n%s' % (sysvals.bootloader, sysvals.blexec) ++ print('Boot Loader: %s\n%s' % (sysvals.bootloader, sysvals.blexec)) + elif(cmd == 'sysinfo'): + sysvals.printSystemInfo(True) + sys.exit() +diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm-graph/sleepgraph.py +index 0c76047..3a6c07f 100755 +--- a/tools/power/pm-graph/sleepgraph.py ++++ b/tools/power/pm-graph/sleepgraph.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2 ++#!/usr/bin/python3 + # + # Tool for analyzing suspend/resume timing + # Copyright (c) 2013, Intel Corporation. +@@ -56,7 +56,7 @@ import re + import platform + from datetime import datetime + import struct +-import ConfigParser ++import configparser + import gzip + from threading import Thread + from subprocess import call, Popen, PIPE +@@ -265,7 +265,7 @@ class SystemValues: + return True + if fatal: + msg = 'This command requires sysfs mount and root access' +- print('ERROR: %s\n') % msg ++ print(('ERROR: %s\n') % msg) + self.outputResult({'error':msg}) + sys.exit() + return False +@@ -274,7 +274,7 @@ class SystemValues: + return True + if fatal: + msg = 'This command must be run as root' +- print('ERROR: %s\n') % msg ++ print(('ERROR: %s\n') % msg) + self.outputResult({'error':msg}) + sys.exit() + return False +@@ -329,10 +329,10 @@ class SystemValues: + return + fmt = '%-24s: %s' + for name in sorted(out): +- print fmt % (name, out[name]) +- print fmt % ('cpucount', ('%d' % self.cpucount)) +- print fmt % ('memtotal', ('%d kB' % self.memtotal)) +- print fmt % ('memfree', ('%d kB' % self.memfree)) ++ print(fmt % (name, out[name])) ++ print(fmt % ('cpucount', ('%d' % self.cpucount))) ++ print(fmt % ('memtotal', ('%d kB' % self.memtotal))) ++ print(fmt % ('memfree', ('%d kB' % self.memfree))) + def cpuInfo(self): + self.cpucount = 0 + fp = open('/proc/cpuinfo', 'r') +@@ -447,9 +447,9 @@ class SystemValues: + if 'func' in self.tracefuncs[i]: + i = self.tracefuncs[i]['func'] + if i in master: +- print i ++ print(i) + else: +- print self.colorText(i) ++ print(self.colorText(i)) + def setFtraceFilterFunctions(self, list): + master = self.listFromFile(self.tpath+'available_filter_functions') + flist = '' +@@ -557,7 +557,7 @@ class SystemValues: + else: + kpl[2].append(name) + if output: +- print(' %s: %s' % (name, res)) ++ print((' %s: %s' % (name, res))) + kplist = kpl[0] + kpl[1] + kpl[2] + kpl[3] + # remove all failed ones from the list + for name in rejects: +@@ -571,7 +571,7 @@ class SystemValues: + if output: + check = self.fgetVal('kprobe_events') + linesack = (len(check.split('\n')) - 1) / 2 +- print(' kprobe functions enabled: %d/%d' % (linesack, linesout)) ++ print((' kprobe functions enabled: %d/%d' % (linesack, linesout))) + self.fsetVal('1', 'events/kprobes/enable') + def testKprobe(self, kname, kprobe): + self.fsetVal('0', 'events/kprobes/enable') +@@ -658,7 +658,7 @@ class SystemValues: + if tgtsize < 65536: + tgtsize = int(self.fgetVal('buffer_size_kb')) * cpus + break +- print 'Setting trace buffers to %d kB (%d kB per cpu)' % (tgtsize, tgtsize/cpus) ++ print('Setting trace buffers to %d kB (%d kB per cpu)' % (tgtsize, tgtsize/cpus)) + # initialize the callgraph trace + if(self.usecallgraph): + # set trace type +@@ -808,7 +808,7 @@ class DevProps: + def out(self, dev): + return '%s,%s,%d;' % (dev, self.altname, self.async) + def debug(self, dev): +- print '%s:\n\taltname = %s\n\t async = %s' % (dev, self.altname, self.async) ++ print('%s:\n\taltname = %s\n\t async = %s' % (dev, self.altname, self.async)) + def altName(self, dev): + if not self.altname or self.altname == dev: + return dev +@@ -1633,14 +1633,14 @@ class FTraceLine: + return len(str)/2 + def debugPrint(self, info=''): + if self.isLeaf(): +- print(' -- %12.6f (depth=%02d): %s(); (%.3f us) %s' % (self.time, \ +- self.depth, self.name, self.length*1000000, info)) ++ print((' -- %12.6f (depth=%02d): %s(); (%.3f us) %s' % (self.time, \ ++ self.depth, self.name, self.length*1000000, info))) + elif self.freturn: +- print(' -- %12.6f (depth=%02d): %s} (%.3f us) %s' % (self.time, \ +- self.depth, self.name, self.length*1000000, info)) ++ print((' -- %12.6f (depth=%02d): %s} (%.3f us) %s' % (self.time, \ ++ self.depth, self.name, self.length*1000000, info))) + else: +- print(' -- %12.6f (depth=%02d): %s() { (%.3f us) %s' % (self.time, \ +- self.depth, self.name, self.length*1000000, info)) ++ print((' -- %12.6f (depth=%02d): %s() { (%.3f us) %s' % (self.time, \ ++ self.depth, self.name, self.length*1000000, info))) + def startMarker(self): + # Is this the starting line of a suspend? + if not self.fevent: +@@ -1786,7 +1786,7 @@ class FTraceCallGraph: + if warning and ('[make leaf]', line) not in info: + info.append(('', line)) + if warning: +- print 'WARNING: ftrace data missing, corrections made:' ++ print('WARNING: ftrace data missing, corrections made:') + for i in info: + t, obj = i + if obj: +@@ -1846,11 +1846,11 @@ class FTraceCallGraph: + id = 'task %s' % (self.pid) + window = '(%f - %f)' % (self.start, line.time) + if(self.depth < 0): +- print('Data misalignment for '+id+\ +- ' (buffer overflow), ignoring this callback') ++ print(('Data misalignment for '+id+\ ++ ' (buffer overflow), ignoring this callback')) + else: +- print('Too much data for '+id+\ +- ' '+window+', ignoring this callback') ++ print(('Too much data for '+id+\ ++ ' '+window+', ignoring this callback')) + def slice(self, dev): + minicg = FTraceCallGraph(dev['pid'], self.sv) + minicg.name = self.name +@@ -1875,7 +1875,7 @@ class FTraceCallGraph: + # bring the depth back to 0 with additional returns + fixed = False + last = self.list[-1] +- for i in reversed(range(enddepth)): ++ for i in reversed(list(range(enddepth))): + t = FTraceLine(last.time) + t.depth = i + t.freturn = True +@@ -1902,7 +1902,7 @@ class FTraceCallGraph: + elif l.isReturn(): + if(l.depth not in stack): + if self.sv.verbose: +- print 'Post Process Error: Depth missing' ++ print('Post Process Error: Depth missing') + l.debugPrint() + return False + # calculate call length from call/return lines +@@ -1919,7 +1919,7 @@ class FTraceCallGraph: + return True + elif(cnt < 0): + if self.sv.verbose: +- print 'Post Process Error: Depth is less than 0' ++ print('Post Process Error: Depth is less than 0') + return False + # trace ended before call tree finished + return self.repair(cnt) +@@ -1978,19 +1978,19 @@ class FTraceCallGraph: + phase, myname = out + data.dmesg[phase]['list'][myname]['ftrace'] = self + def debugPrint(self, info=''): +- print('%s pid=%d [%f - %f] %.3f us') % \ ++ print(('%s pid=%d [%f - %f] %.3f us') % \ + (self.name, self.pid, self.start, self.end, +- (self.end - self.start)*1000000) ++ (self.end - self.start)*1000000)) + for l in self.list: + if l.isLeaf(): +- print('%f (%02d): %s(); (%.3f us)%s' % (l.time, \ +- l.depth, l.name, l.length*1000000, info)) ++ print(('%f (%02d): %s(); (%.3f us)%s' % (l.time, \ ++ l.depth, l.name, l.length*1000000, info))) + elif l.freturn: +- print('%f (%02d): %s} (%.3f us)%s' % (l.time, \ +- l.depth, l.name, l.length*1000000, info)) ++ print(('%f (%02d): %s} (%.3f us)%s' % (l.time, \ ++ l.depth, l.name, l.length*1000000, info))) + else: +- print('%f (%02d): %s() { (%.3f us)%s' % (l.time, \ +- l.depth, l.name, l.length*1000000, info)) ++ print(('%f (%02d): %s() { (%.3f us)%s' % (l.time, \ ++ l.depth, l.name, l.length*1000000, info))) + print(' ') + + class DevItem: +@@ -3040,8 +3040,8 @@ def parseTraceLog(live=False): + sortkey = '%f%f%d' % (cg.start, cg.end, pid) + sortlist[sortkey] = cg + elif len(cg.list) > 1000000: +- print 'WARNING: the callgraph for %s is massive (%d lines)' %\ +- (devname, len(cg.list)) ++ print('WARNING: the callgraph for %s is massive (%d lines)' %\ ++ (devname, len(cg.list))) + # create blocks for orphan cg data + for sortkey in sorted(sortlist): + cg = sortlist[sortkey] +@@ -3061,7 +3061,7 @@ def parseTraceLog(live=False): + for p in data.phases: + if(data.dmesg[p]['start'] < 0 and data.dmesg[p]['end'] < 0): + if not terr: +- print 'TEST%s FAILED: %s failed in %s phase' % (tn, sysvals.suspendmode, lp) ++ print('TEST%s FAILED: %s failed in %s phase' % (tn, sysvals.suspendmode, lp)) + terr = '%s%s failed in %s phase' % (sysvals.suspendmode, tn, lp) + error.append(terr) + sysvals.vprint('WARNING: phase "%s" is missing!' % p) +@@ -3158,8 +3158,8 @@ def loadKernelLog(): + if data: + testruns.append(data) + if len(testruns) < 1: +- print('ERROR: dmesg log has no suspend/resume data: %s' \ +- % sysvals.dmesgfile) ++ print(('ERROR: dmesg log has no suspend/resume data: %s' \ ++ % sysvals.dmesgfile)) + + # fix lines with same timestamp/function with the call and return swapped + for data in testruns: +@@ -3401,10 +3401,10 @@ def parseKernelLog(data): + lp = data.phases[0] + for p in data.phases: + if(data.dmesg[p]['start'] < 0 and data.dmesg[p]['end'] < 0): +- print('WARNING: phase "%s" is missing, something went wrong!' % p) +- print(' In %s, this dmesg line denotes the start of %s:' % \ +- (sysvals.suspendmode, p)) +- print(' "%s"' % dm[p]) ++ print(('WARNING: phase "%s" is missing, something went wrong!' % p)) ++ print((' In %s, this dmesg line denotes the start of %s:' % \ ++ (sysvals.suspendmode, p))) ++ print((' "%s"' % dm[p])) + if(data.dmesg[p]['start'] < 0): + data.dmesg[p]['start'] = data.dmesg[lp]['end'] + if(p == 'resume_machine'): +@@ -4526,14 +4526,14 @@ def setRuntimeSuspend(before=True): + sv.rslist = deviceInfo(sv.rstgt) + for i in sv.rslist: + sv.setVal(sv.rsval, i) +- print('runtime suspend %s on all devices (%d changed)' % (sv.rsdir, len(sv.rslist))) ++ print(('runtime suspend %s on all devices (%d changed)' % (sv.rsdir, len(sv.rslist)))) + print('waiting 5 seconds...') + time.sleep(5) + else: + # runtime suspend re-enable or re-disable + for i in sv.rslist: + sv.setVal(sv.rstgt, i) +- print('runtime suspend settings restored on %d devices' % len(sv.rslist)) ++ print(('runtime suspend settings restored on %d devices' % len(sv.rslist))) + + # Function: executeSuspend + # Description: +@@ -4581,7 +4581,7 @@ def executeSuspend(): + print('SUSPEND START (press a key to resume)') + # set rtcwake + if(sysvals.rtcwake): +- print('will issue an rtcwake in %d seconds' % sysvals.rtcwaketime) ++ print(('will issue an rtcwake in %d seconds' % sysvals.rtcwaketime)) + sysvals.rtcWakeAlarmOn() + # start of suspend trace marker + if(sysvals.usecallgraph or sysvals.usetraceevents): +@@ -4723,7 +4723,7 @@ def deviceInfo(output=''): + ms2nice(power['runtime_active_time']), \ + ms2nice(power['runtime_suspended_time'])) + for i in sorted(lines): +- print lines[i] ++ print(lines[i]) + return res + + # Function: devProps +@@ -5056,16 +5056,16 @@ def getFPDT(output): + table = struct.unpack('4sIBB6s8sI4sI', buf[0:36]) + if(output): + print('') +- print('Firmware Performance Data Table (%s)' % table[0]) +- print(' Signature : %s' % table[0]) +- print(' Table Length : %u' % table[1]) +- print(' Revision : %u' % table[2]) +- print(' Checksum : 0x%x' % table[3]) +- print(' OEM ID : %s' % table[4]) +- print(' OEM Table ID : %s' % table[5]) +- print(' OEM Revision : %u' % table[6]) +- print(' Creator ID : %s' % table[7]) +- print(' Creator Revision : 0x%x' % table[8]) ++ print(('Firmware Performance Data Table (%s)' % table[0])) ++ print((' Signature : %s' % table[0])) ++ print((' Table Length : %u' % table[1])) ++ print((' Revision : %u' % table[2])) ++ print((' Checksum : 0x%x' % table[3])) ++ print((' OEM ID : %s' % table[4])) ++ print((' OEM Table ID : %s' % table[5])) ++ print((' OEM Revision : %u' % table[6])) ++ print((' Creator ID : %s' % table[7])) ++ print((' Creator Revision : 0x%x' % table[8])) + print('') + + if(table[0] != 'FPDT'): +@@ -5092,22 +5092,22 @@ def getFPDT(output): + first = fp.read(8) + except: + if(output): +- print('Bad address 0x%x in %s' % (addr, sysvals.mempath)) ++ print(('Bad address 0x%x in %s' % (addr, sysvals.mempath))) + return [0, 0] + rechead = struct.unpack('4sI', first) + recdata = fp.read(rechead[1]-8) + if(rechead[0] == 'FBPT'): + record = struct.unpack('HBBIQQQQQ', recdata) + if(output): +- print('%s (%s)' % (rectype[header[0]], rechead[0])) +- print(' Reset END : %u ns' % record[4]) +- print(' OS Loader LoadImage Start : %u ns' % record[5]) +- print(' OS Loader StartImage Start : %u ns' % record[6]) +- print(' ExitBootServices Entry : %u ns' % record[7]) +- print(' ExitBootServices Exit : %u ns' % record[8]) ++ print(('%s (%s)' % (rectype[header[0]], rechead[0]))) ++ print((' Reset END : %u ns' % record[4])) ++ print((' OS Loader LoadImage Start : %u ns' % record[5])) ++ print((' OS Loader StartImage Start : %u ns' % record[6])) ++ print((' ExitBootServices Entry : %u ns' % record[7])) ++ print((' ExitBootServices Exit : %u ns' % record[8])) + elif(rechead[0] == 'S3PT'): + if(output): +- print('%s (%s)' % (rectype[header[0]], rechead[0])) ++ print(('%s (%s)' % (rectype[header[0]], rechead[0]))) + j = 0 + while(j < len(recdata)): + prechead = struct.unpack('HBB', recdata[j:j+4]) +@@ -5117,24 +5117,24 @@ def getFPDT(output): + record = struct.unpack('IIQQ', recdata[j:j+prechead[1]]) + fwData[1] = record[2] + if(output): +- print(' %s' % prectype[prechead[0]]) +- print(' Resume Count : %u' % \ +- record[1]) +- print(' FullResume : %u ns' % \ +- record[2]) +- print(' AverageResume : %u ns' % \ +- record[3]) ++ print((' %s' % prectype[prechead[0]])) ++ print((' Resume Count : %u' % \ ++ record[1])) ++ print((' FullResume : %u ns' % \ ++ record[2])) ++ print((' AverageResume : %u ns' % \ ++ record[3])) + elif(prechead[0] == 1): + record = struct.unpack('QQ', recdata[j+4:j+prechead[1]]) + fwData[0] = record[1] - record[0] + if(output): +- print(' %s' % prectype[prechead[0]]) +- print(' SuspendStart : %u ns' % \ +- record[0]) +- print(' SuspendEnd : %u ns' % \ +- record[1]) +- print(' SuspendTime : %u ns' % \ +- fwData[0]) ++ print((' %s' % prectype[prechead[0]])) ++ print((' SuspendStart : %u ns' % \ ++ record[0])) ++ print((' SuspendEnd : %u ns' % \ ++ record[1])) ++ print((' SuspendTime : %u ns' % \ ++ fwData[0])) + j += prechead[1] + if(output): + print('') +@@ -5151,13 +5151,13 @@ def getFPDT(output): + def statusCheck(probecheck=False): + status = True + +- print('Checking this system (%s)...' % platform.node()) ++ print(('Checking this system (%s)...' % platform.node())) + + # check we have root access + res = sysvals.colorText('NO (No features of this tool will work!)') + if(sysvals.rootCheck(False)): + res = 'YES' +- print(' have root access: %s' % res) ++ print((' have root access: %s' % res)) + if(res != 'YES'): + print(' Try running this script with sudo') + return False +@@ -5166,7 +5166,7 @@ def statusCheck(probecheck=False): + res = sysvals.colorText('NO (No features of this tool will work!)') + if(os.path.exists(sysvals.powerfile)): + res = 'YES' +- print(' is sysfs mounted: %s' % res) ++ print((' is sysfs mounted: %s' % res)) + if(res != 'YES'): + return False + +@@ -5178,9 +5178,9 @@ def statusCheck(probecheck=False): + res = 'YES' + else: + status = False +- print(' is "%s" a valid power mode: %s' % (sysvals.suspendmode, res)) ++ print((' is "%s" a valid power mode: %s' % (sysvals.suspendmode, res))) + if(res == 'NO'): +- print(' valid power modes are: %s' % modes) ++ print((' valid power modes are: %s' % modes)) + print(' please choose one with -m') + + # check if ftrace is available +@@ -5190,7 +5190,7 @@ def statusCheck(probecheck=False): + res = 'YES' + elif(sysvals.usecallgraph): + status = False +- print(' is ftrace supported: %s' % res) ++ print((' is ftrace supported: %s' % res)) + + # check if kprobes are available + res = sysvals.colorText('NO') +@@ -5199,7 +5199,7 @@ def statusCheck(probecheck=False): + res = 'YES' + else: + sysvals.usedevsrc = False +- print(' are kprobes supported: %s' % res) ++ print((' are kprobes supported: %s' % res)) + + # what data source are we using + res = 'DMESG' +@@ -5210,7 +5210,7 @@ def statusCheck(probecheck=False): + sysvals.usetraceevents = False + if(sysvals.usetraceevents): + res = 'FTRACE (all trace events found)' +- print(' timeline data source: %s' % res) ++ print((' timeline data source: %s' % res)) + + # check if rtcwake + res = sysvals.colorText('NO') +@@ -5218,7 +5218,7 @@ def statusCheck(probecheck=False): + res = 'YES' + elif(sysvals.rtcwake): + status = False +- print(' is rtcwake supported: %s' % res) ++ print((' is rtcwake supported: %s' % res)) + + if not probecheck: + return status +@@ -5243,7 +5243,7 @@ def statusCheck(probecheck=False): + def doError(msg, help=False): + if(help == True): + printHelp() +- print('ERROR: %s\n') % msg ++ print(('ERROR: %s\n') % msg) + sysvals.outputResult({'error':msg}) + sys.exit() + +@@ -5253,7 +5253,7 @@ def doError(msg, help=False): + def getArgInt(name, args, min, max, main=True): + if main: + try: +- arg = args.next() ++ arg = next(args) + except: + doError(name+': no argument supplied', True) + else: +@@ -5272,7 +5272,7 @@ def getArgInt(name, args, min, max, main=True): + def getArgFloat(name, args, min, max, main=True): + if main: + try: +- arg = args.next() ++ arg = next(args) + except: + doError(name+': no argument supplied', True) + else: +@@ -5388,7 +5388,7 @@ def runSummary(subdir, local=True, genhtml=False): + outpath = inpath + if local: + outpath = os.path.abspath('.') +- print('Generating a summary of folder "%s"' % inpath) ++ print(('Generating a summary of folder "%s"' % inpath)) + if genhtml: + for dirname, dirnames, filenames in os.walk(subdir): + sysvals.dmesgfile = sysvals.ftracefile = sysvals.htmlfile = '' +@@ -5400,9 +5400,9 @@ def runSummary(subdir, local=True, genhtml=False): + sysvals.setOutputFile() + if sysvals.ftracefile and sysvals.htmlfile and \ + not os.path.exists(sysvals.htmlfile): +- print('FTRACE: %s' % sysvals.ftracefile) ++ print(('FTRACE: %s' % sysvals.ftracefile)) + if sysvals.dmesgfile: +- print('DMESG : %s' % sysvals.dmesgfile) ++ print(('DMESG : %s' % sysvals.dmesgfile)) + rerunTest() + testruns = [] + for dirname, dirnames, filenames in os.walk(subdir): +@@ -5441,7 +5441,7 @@ def runSummary(subdir, local=True, genhtml=False): + } + testruns.append(data) + outfile = os.path.join(outpath, 'summary.html') +- print('Summary file: %s' % outfile) ++ print(('Summary file: %s' % outfile)) + createHTMLSummarySimple(testruns, outfile, inpath) + + # Function: checkArgBool +@@ -5459,7 +5459,7 @@ def checkArgBool(name, value): + # Description: + # Configure the script via the info in a config file + def configFromFile(file): +- Config = ConfigParser.ConfigParser() ++ Config = configparser.ConfigParser() + + Config.read(file) + sections = Config.sections() +@@ -5661,7 +5661,7 @@ def configFromFile(file): + # print out the help text + def printHelp(): + print('') +- print('%s v%s' % (sysvals.title, sysvals.version)) ++ print(('%s v%s' % (sysvals.title, sysvals.version))) + print('Usage: sudo sleepgraph ') + print('') + print('Description:') +@@ -5686,7 +5686,7 @@ def printHelp(): + print(' -v Print the current tool version') + print(' -config fn Pull arguments and config options from file fn') + print(' -verbose Print extra information during execution and analysis') +- print(' -m mode Mode to initiate for suspend (default: %s)') % (sysvals.suspendmode) ++ print((' -m mode Mode to initiate for suspend (default: %s)') % (sysvals.suspendmode)) + print(' -o name Overrides the output subdirectory name when running a new test') + print(' default: suspend-{date}-{time}') + print(' -rtcwake t Wakeup t seconds after suspend, set t to "off" to disable (default: 15)') +@@ -5753,7 +5753,7 @@ if __name__ == '__main__': + for arg in args: + if(arg == '-m'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No mode supplied', True) + if val == 'command' and not sysvals.testcommand: +@@ -5765,7 +5765,7 @@ if __name__ == '__main__': + printHelp() + sys.exit() + elif(arg == '-v'): +- print("Version %s" % sysvals.version) ++ print(("Version %s" % sysvals.version)) + sys.exit() + elif(arg == '-x2'): + sysvals.execcount = 2 +@@ -5797,7 +5797,7 @@ if __name__ == '__main__': + sysvals.gzip = True + elif(arg == '-rs'): + try: +- val = args.next() ++ val = next(args) + except: + doError('-rs requires "enable" or "disable"', True) + if val.lower() in switchvalues: +@@ -5809,7 +5809,7 @@ if __name__ == '__main__': + doError('invalid option: %s, use "enable/disable" or "on/off"' % val, True) + elif(arg == '-display'): + try: +- val = args.next() ++ val = next(args) + except: + doError('-display requires "on" or "off"', True) + if val.lower() in switchvalues: +@@ -5823,7 +5823,7 @@ if __name__ == '__main__': + sysvals.max_graph_depth = getArgInt('-maxdepth', args, 0, 1000) + elif(arg == '-rtcwake'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No rtcwake time supplied', True) + if val.lower() in switchoff: +@@ -5843,7 +5843,7 @@ if __name__ == '__main__': + sysvals.cgtest = getArgInt('-cgtest', args, 0, 1) + elif(arg == '-cgphase'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No phase name supplied', True) + d = Data(0) +@@ -5853,13 +5853,13 @@ if __name__ == '__main__': + sysvals.cgphase = val + elif(arg == '-cgfilter'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No callgraph functions supplied', True) + sysvals.setCallgraphFilter(val) + elif(arg == '-cgskip'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No file supplied', True) + if val.lower() in switchoff: +@@ -5874,7 +5874,7 @@ if __name__ == '__main__': + sysvals.callloopmaxlen = getArgFloat('-callloop-maxlen', args, 0.0, 1.0) + elif(arg == '-cmd'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No command string supplied', True) + sysvals.testcommand = val +@@ -5889,13 +5889,13 @@ if __name__ == '__main__': + sysvals.multitest['delay'] = getArgInt('-multi n d (delay between tests)', args, 0, 3600) + elif(arg == '-o'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No subdirectory name supplied', True) + sysvals.outdir = sysvals.setOutputFolder(val) + elif(arg == '-config'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No text file supplied', True) + file = sysvals.configFile(val) +@@ -5904,7 +5904,7 @@ if __name__ == '__main__': + configFromFile(file) + elif(arg == '-fadd'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No text file supplied', True) + file = sysvals.configFile(val) +@@ -5913,7 +5913,7 @@ if __name__ == '__main__': + sysvals.addFtraceFilterFunctions(file) + elif(arg == '-dmesg'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No dmesg file supplied', True) + sysvals.notestrun = True +@@ -5922,7 +5922,7 @@ if __name__ == '__main__': + doError('%s does not exist' % sysvals.dmesgfile) + elif(arg == '-ftrace'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No ftrace file supplied', True) + sysvals.notestrun = True +@@ -5931,7 +5931,7 @@ if __name__ == '__main__': + doError('%s does not exist' % sysvals.ftracefile) + elif(arg == '-summary'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No directory supplied', True) + cmd = 'summary' +@@ -5941,13 +5941,13 @@ if __name__ == '__main__': + doError('%s is not accesible' % val) + elif(arg == '-filter'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No devnames supplied', True) + sysvals.setDeviceFilter(val) + elif(arg == '-result'): + try: +- val = args.next() ++ val = next(args) + except: + doError('No result file supplied', True) + sysvals.result = val +@@ -5980,13 +5980,13 @@ if __name__ == '__main__': + elif(cmd == 'fpdt'): + getFPDT(True) + elif(cmd == 'battery'): +- print 'AC Connect: %s\nCharge: %d' % getBattery() ++ print('AC Connect: %s\nCharge: %d' % getBattery()) + elif(cmd == 'sysinfo'): + sysvals.printSystemInfo(True) + elif(cmd == 'devinfo'): + deviceInfo() + elif(cmd == 'modes'): +- print getModes() ++ print(getModes()) + elif(cmd == 'flist'): + sysvals.getFtraceFilterFunctions(True) + elif(cmd == 'flistall'): +@@ -6036,13 +6036,13 @@ if __name__ == '__main__': + os.mkdir(sysvals.outdir) + for i in range(sysvals.multitest['count']): + if(i != 0): +- print('Waiting %d seconds...' % (sysvals.multitest['delay'])) ++ print(('Waiting %d seconds...' % (sysvals.multitest['delay']))) + time.sleep(sysvals.multitest['delay']) +- print('TEST (%d/%d) START' % (i+1, sysvals.multitest['count'])) ++ print(('TEST (%d/%d) START' % (i+1, sysvals.multitest['count']))) + fmt = 'suspend-%y%m%d-%H%M%S' + sysvals.testdir = os.path.join(sysvals.outdir, datetime.now().strftime(fmt)) + runTest(i+1) +- print('TEST (%d/%d) COMPLETE' % (i+1, sysvals.multitest['count'])) ++ print(('TEST (%d/%d) COMPLETE' % (i+1, sysvals.multitest['count']))) + sysvals.logmsg = '' + if not sysvals.skiphtml: + runSummary(sysvals.outdir, False, False) +diff --git a/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py b/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py +index 2fa3c57..b1e2abc 100755 +--- a/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py ++++ b/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # -*- coding: utf-8 -*- + # + """ This utility can be used to debug and tune the performance of the +@@ -22,7 +22,7 @@ Prerequisites: + see print_help(): for Usage and Output details + + """ +-from __future__ import print_function ++ + from datetime import datetime + import subprocess + import os +-- +1.8.3.1 + -- Gitee From 7a77db784cfd2be029ab2c8b2575358ae196b024 Mon Sep 17 00:00:00 2001 From: lihongjiang Date: Fri, 24 Apr 2020 16:16:20 +0800 Subject: [PATCH 2/2] update version to 2.22 --- 0001-change-script-from-py2-to-py3.patch | 1897 ----------------- 0002-libhugetlbfs-2.16-makefile_cflags.patch | 12 - 0003-fix-behavior-while-shrinking.patch | 80 - ...ick-an-emulation-if-m-is-not-present.patch | 42 - ...fs-support-512M-hugepages-on-aarch64.patch | 44 - ...tlbfs-fix-tests-with-heapshrink-fail.patch | 65 - ...hugetlbfs-2.20-change-scripts-to-py3.patch | 306 --- libhugetlbfs-2.20.tar.gz | Bin 194560 -> 0 bytes libhugetlbfs-2.22.tar.gz | Bin 0 -> 174012 bytes ...fy.patch => libhugetlbfs-make-cflags.patch | 12 +- libhugetlbfs.spec | 18 +- 11 files changed, 16 insertions(+), 2460 deletions(-) delete mode 100644 0001-change-script-from-py2-to-py3.patch delete mode 100644 0002-libhugetlbfs-2.16-makefile_cflags.patch delete mode 100644 0003-fix-behavior-while-shrinking.patch delete mode 100644 0004-ld.hugetlbfs-pick-an-emulation-if-m-is-not-present.patch delete mode 100644 0005-ld.hugetlbfs-support-512M-hugepages-on-aarch64.patch delete mode 100644 0006-libhugetlbfs-fix-tests-with-heapshrink-fail.patch delete mode 100644 0007-libhugetlbfs-2.20-change-scripts-to-py3.patch delete mode 100644 libhugetlbfs-2.20.tar.gz create mode 100644 libhugetlbfs-2.22.tar.gz rename 0001-libhugetlbfs-2.15-fortify.patch => libhugetlbfs-make-cflags.patch (53%) diff --git a/0001-change-script-from-py2-to-py3.patch b/0001-change-script-from-py2-to-py3.patch deleted file mode 100644 index 0536961..0000000 --- a/0001-change-script-from-py2-to-py3.patch +++ /dev/null @@ -1,1897 +0,0 @@ -Subject: [PATCH] [PATCH openEuler-1.0] : arm64/scripts: covert scripts from py2 to py3 - -euler inclusion -category:scripts -bugzilla:NA -CVE:NA ---- -Modify whole python2 scripts to python3, to remove the python2 dependencies. - -Signed-off-by:lihongjiang ---- - Documentation/networking/cxacru-cf.py | 2 +- - Documentation/target/tcm_mod_builder.py | 44 ++-- - Documentation/trace/postprocess/decode_msr.py | 4 +- - arch/ia64/scripts/unwcheck.py | 10 +- - drivers/staging/greybus/tools/lbtest | 6 +- - scripts/bloat-o-meter | 12 +- - scripts/check-kabi | 34 +-- - scripts/diffconfig | 14 +- - scripts/show_delta | 10 +- - scripts/spdxcheck.py | 2 +- - scripts/tracing/draw_functrace.py | 4 +- - tools/hv/lsvmbus | 14 +- - tools/kvm/kvm_stat/kvm_stat | 24 +- - tools/perf/python/tracepoint.py | 6 +- - tools/perf/python/twatch.py | 6 +- - tools/perf/scripts/python/call-graph-from-sql.py | 10 +- - tools/perf/scripts/python/sched-migration.py | 6 +- - tools/perf/scripts/python/stat-cpi.py | 4 +- - tools/perf/tests/attr.py | 36 +-- - tools/perf/util/setup.py | 4 +- - tools/power/pm-graph/bootgraph.py | 62 +++--- - tools/power/pm-graph/sleepgraph.py | 244 ++++++++++----------- - .../x86/intel_pstate_tracer/intel_pstate_tracer.py | 4 +- - 23 files changed, 281 insertions(+), 281 deletions(-) - -diff --git a/Documentation/networking/cxacru-cf.py b/Documentation/networking/cxacru-cf.py -index b41d298..1b960fb 100644 ---- a/Documentation/networking/cxacru-cf.py -+++ b/Documentation/networking/cxacru-cf.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # Copyright 2009 Simon Arlott - # - # This program is free software; you can redistribute it and/or modify it -diff --git a/Documentation/target/tcm_mod_builder.py b/Documentation/target/tcm_mod_builder.py -index 94bf694..3180283 100755 ---- a/Documentation/target/tcm_mod_builder.py -+++ b/Documentation/target/tcm_mod_builder.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD - # - # Copyright (c) 2010 Rising Tide Systems -@@ -20,7 +20,7 @@ fabric_mod_port = "" - fabric_mod_init_port = "" - - def tcm_mod_err(msg): -- print msg -+ print(msg) - sys.exit(1) - - def tcm_mod_create_module_subdir(fabric_mod_dir_var): -@@ -28,7 +28,7 @@ def tcm_mod_create_module_subdir(fabric_mod_dir_var): - if os.path.isdir(fabric_mod_dir_var) == True: - return 1 - -- print "Creating fabric_mod_dir: " + fabric_mod_dir_var -+ print("Creating fabric_mod_dir: " + fabric_mod_dir_var) - ret = os.mkdir(fabric_mod_dir_var) - if ret: - tcm_mod_err("Unable to mkdir " + fabric_mod_dir_var) -@@ -41,7 +41,7 @@ def tcm_mod_build_FC_include(fabric_mod_dir_var, fabric_mod_name): - buf = "" - - f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h" -- print "Writing file: " + f -+ print("Writing file: " + f) - - p = open(f, 'w'); - if not p: -@@ -85,7 +85,7 @@ def tcm_mod_build_SAS_include(fabric_mod_dir_var, fabric_mod_name): - buf = "" - - f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h" -- print "Writing file: " + f -+ print("Writing file: " + f) - - p = open(f, 'w'); - if not p: -@@ -128,7 +128,7 @@ def tcm_mod_build_iSCSI_include(fabric_mod_dir_var, fabric_mod_name): - buf = "" - - f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h" -- print "Writing file: " + f -+ print("Writing file: " + f) - - p = open(f, 'w'); - if not p: -@@ -172,7 +172,7 @@ def tcm_mod_build_base_includes(proto_ident, fabric_mod_dir_val, fabric_mod_name - elif proto_ident == "iSCSI": - tcm_mod_build_iSCSI_include(fabric_mod_dir_val, fabric_mod_name) - else: -- print "Unsupported proto_ident: " + proto_ident -+ print("Unsupported proto_ident: " + proto_ident) - sys.exit(1) - - return -@@ -181,7 +181,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): - buf = "" - - f = fabric_mod_dir_var + "/" + fabric_mod_name + "_configfs.c" -- print "Writing file: " + f -+ print("Writing file: " + f) - - p = open(f, 'w'); - if not p: -@@ -340,7 +340,7 @@ def tcm_mod_scan_fabric_ops(tcm_dir): - - fabric_ops_api = tcm_dir + "include/target/target_core_fabric.h" - -- print "Using tcm_mod_scan_fabric_ops: " + fabric_ops_api -+ print("Using tcm_mod_scan_fabric_ops: " + fabric_ops_api) - process_fo = 0; - - p = open(fabric_ops_api, 'r') -@@ -376,14 +376,14 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): - bufi = "" - - f = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.c" -- print "Writing file: " + f -+ print("Writing file: " + f) - - p = open(f, 'w') - if not p: - tcm_mod_err("Unable to open file: " + f) - - fi = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.h" -- print "Writing file: " + fi -+ print("Writing file: " + fi) - - pi = open(fi, 'w') - if not pi: -@@ -545,7 +545,7 @@ def tcm_mod_build_kbuild(fabric_mod_dir_var, fabric_mod_name): - - buf = "" - f = fabric_mod_dir_var + "/Makefile" -- print "Writing file: " + f -+ print("Writing file: " + f) - - p = open(f, 'w') - if not p: -@@ -566,7 +566,7 @@ def tcm_mod_build_kconfig(fabric_mod_dir_var, fabric_mod_name): - - buf = "" - f = fabric_mod_dir_var + "/Kconfig" -- print "Writing file: " + f -+ print("Writing file: " + f) - - p = open(f, 'w') - if not p: -@@ -611,20 +611,20 @@ def main(modname, proto_ident): - - tcm_dir = os.getcwd(); - tcm_dir += "/../../" -- print "tcm_dir: " + tcm_dir -+ print("tcm_dir: " + tcm_dir) - fabric_mod_name = modname - fabric_mod_dir = tcm_dir + "drivers/target/" + fabric_mod_name -- print "Set fabric_mod_name: " + fabric_mod_name -- print "Set fabric_mod_dir: " + fabric_mod_dir -- print "Using proto_ident: " + proto_ident -+ print("Set fabric_mod_name: " + fabric_mod_name) -+ print("Set fabric_mod_dir: " + fabric_mod_dir) -+ print("Using proto_ident: " + proto_ident) - - if proto_ident != "FC" and proto_ident != "SAS" and proto_ident != "iSCSI": -- print "Unsupported proto_ident: " + proto_ident -+ print("Unsupported proto_ident: " + proto_ident) - sys.exit(1) - - ret = tcm_mod_create_module_subdir(fabric_mod_dir) - if ret: -- print "tcm_mod_create_module_subdir() failed because module already exists!" -+ print("tcm_mod_create_module_subdir() failed because module already exists!") - sys.exit(1) - - tcm_mod_build_base_includes(proto_ident, fabric_mod_dir, fabric_mod_name) -@@ -634,11 +634,11 @@ def main(modname, proto_ident): - tcm_mod_build_kbuild(fabric_mod_dir, fabric_mod_name) - tcm_mod_build_kconfig(fabric_mod_dir, fabric_mod_name) - -- input = raw_input("Would you like to add " + fabric_mod_name + " to drivers/target/Makefile..? [yes,no]: ") -+ input = input("Would you like to add " + fabric_mod_name + " to drivers/target/Makefile..? [yes,no]: ") - if input == "yes" or input == "y": - tcm_mod_add_kbuild(tcm_dir, fabric_mod_name) - -- input = raw_input("Would you like to add " + fabric_mod_name + " to drivers/target/Kconfig..? [yes,no]: ") -+ input = input("Would you like to add " + fabric_mod_name + " to drivers/target/Kconfig..? [yes,no]: ") - if input == "yes" or input == "y": - tcm_mod_add_kconfig(tcm_dir, fabric_mod_name) - -@@ -655,7 +655,7 @@ parser.add_option('-p', '--protoident', help='Protocol Ident', dest='protoident' - mandatories = ['modname', 'protoident'] - for m in mandatories: - if not opts.__dict__[m]: -- print "mandatory option is missing\n" -+ print("mandatory option is missing\n") - parser.print_help() - exit(-1) - -diff --git a/Documentation/trace/postprocess/decode_msr.py b/Documentation/trace/postprocess/decode_msr.py -index 0ab40e0..dc58c58 100644 ---- a/Documentation/trace/postprocess/decode_msr.py -+++ b/Documentation/trace/postprocess/decode_msr.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # add symbolic names to read_msr / write_msr in trace - # decode_msr msr-index.h < trace - import sys -@@ -32,6 +32,6 @@ for j in sys.stdin: - break - if r: - j = j.replace(" " + m.group(2), " " + r + "(" + m.group(2) + ")") -- print j, -+ print(j, end=' ') - - -diff --git a/arch/ia64/scripts/unwcheck.py b/arch/ia64/scripts/unwcheck.py -index c55276e..b7ecaf7 100644 ---- a/arch/ia64/scripts/unwcheck.py -+++ b/arch/ia64/scripts/unwcheck.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # SPDX-License-Identifier: GPL-2.0 - # - # Usage: unwcheck.py FILE -@@ -16,7 +16,7 @@ import re - import sys - - if len(sys.argv) != 2: -- print("Usage: %s FILE" % sys.argv[0]) -+ print(("Usage: %s FILE" % sys.argv[0])) - sys.exit(2) - - readelf = os.getenv("READELF", "readelf") -@@ -29,7 +29,7 @@ def check_func (func, slots, rlen_sum): - global num_errors - num_errors += 1 - if not func: func = "[%#x-%#x]" % (start, end) -- print("ERROR: %s: %lu slots, total region length = %lu" % (func, slots, rlen_sum)) -+ print(("ERROR: %s: %lu slots, total region length = %lu" % (func, slots, rlen_sum))) - return - - num_funcs = 0 -@@ -55,11 +55,11 @@ for line in os.popen("%s -u %s" % (readelf, sys.argv[1])): - check_func(func, slots, rlen_sum) - - if num_errors == 0: -- print("No errors detected in %u functions." % num_funcs) -+ print(("No errors detected in %u functions." % num_funcs)) - else: - if num_errors > 1: - err="errors" - else: - err="error" -- print("%u %s detected in %u functions." % (num_errors, err, num_funcs)) -+ print(("%u %s detected in %u functions." % (num_errors, err, num_funcs))) - sys.exit(1) -diff --git a/drivers/staging/greybus/tools/lbtest b/drivers/staging/greybus/tools/lbtest -index 47c4812..ed71c6e 100755 ---- a/drivers/staging/greybus/tools/lbtest -+++ b/drivers/staging/greybus/tools/lbtest -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # SPDX-License-Identifier: BSD-3-Clause - - # Copyright (c) 2015 Google, Inc. -@@ -28,7 +28,7 @@ - # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - --from __future__ import print_function -+ - import csv - import datetime - import sys -@@ -161,7 +161,7 @@ def main(): - if len(sys.argv) < 5: - usage() - -- if sys.argv[1] in dict.keys(): -+ if sys.argv[1] in list(dict.keys()): - loopback_run(sys.argv[1], sys.argv[2], int(sys.argv[3]), sys.argv[4]) - else: - usage() -diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter -index a923f05..cbd267d 100755 ---- a/scripts/bloat-o-meter -+++ b/scripts/bloat-o-meter -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # - # Copyright 2004 Matt Mackall - # -@@ -77,17 +77,17 @@ def print_result(symboltype, symbolformat, argc): - grow, shrink, add, remove, up, down, delta, old, new, otot, ntot = \ - calc(sys.argv[argc - 1], sys.argv[argc], symbolformat) - -- print("add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \ -- (add, remove, grow, shrink, up, -down, up-down)) -- print("%-40s %7s %7s %+7s" % (symboltype, "old", "new", "delta")) -+ print(("add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \ -+ (add, remove, grow, shrink, up, -down, up-down))) -+ print(("%-40s %7s %7s %+7s" % (symboltype, "old", "new", "delta"))) - for d, n in delta: -- if d: print("%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)) -+ if d: print(("%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d))) - - if otot: - percent = (ntot - otot) * 100.0 / otot - else: - percent = 0 -- print("Total: Before=%d, After=%d, chg %+.2f%%" % (otot, ntot, percent)) -+ print(("Total: Before=%d, After=%d, chg %+.2f%%" % (otot, ntot, percent))) - - if sys.argv[1] == "-c": - print_result("Function", "tT", 3) -diff --git a/scripts/check-kabi b/scripts/check-kabi -index e3ec97c..b173422 100755 ---- a/scripts/check-kabi -+++ b/scripts/check-kabi -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # SPDX-License-Identifier: GPL-2.0 - # - # check-kabi - Red Hat kABI reference checking tool -@@ -71,7 +71,7 @@ def check_kabi(symvers,kabi): - - for symbol in kabi: - abi_hash,abi_sym,abi_dir,abi_type = string.split(kabi[symbol]) -- if symvers.has_key(symbol): -+ if symbol in symvers: - sym_hash,sym_sym,sym_dir,sym_type = string.split(symvers[symbol]) - if abi_hash != sym_hash: - fail=1 -@@ -85,23 +85,23 @@ def check_kabi(symvers,kabi): - changed_symbols.append(symbol) - - if fail: -- print "*** ERROR - ABI BREAKAGE WAS DETECTED ***" -- print "" -- print "The following symbols have been changed (this will cause an ABI breakage):" -- print "" -+ print("*** ERROR - ABI BREAKAGE WAS DETECTED ***") -+ print("") -+ print("The following symbols have been changed (this will cause an ABI breakage):") -+ print("") - for symbol in changed_symbols: -- print symbol -- print "" -+ print(symbol) -+ print("") - - if warn: -- print "*** WARNING - ABI SYMBOLS MOVED ***" -- print "" -- print "The following symbols moved (typically caused by moving a symbol from being" -- print "provided by the kernel vmlinux out to a loadable module):" -- print "" -+ print("*** WARNING - ABI SYMBOLS MOVED ***") -+ print("") -+ print("The following symbols moved (typically caused by moving a symbol from being") -+ print("provided by the kernel vmlinux out to a loadable module):") -+ print("") - for symbol in moved_symbols: -- print symbol -- print "" -+ print(symbol) -+ print("") - - """Halt the build, if we got errors and/or warnings. In either case, - double-checkig is required to avoid introducing / concealing -@@ -111,12 +111,12 @@ def check_kabi(symvers,kabi): - sys.exit(0) - - def usage(): -- print """ -+ print(""" - check-kabi: check Module.kabi and Module.symvers files. - - check-kabi [ -k Module.kabi ] [ -s Module.symvers ] - --""" -+""") - - if __name__ == "__main__": - -diff --git a/scripts/diffconfig b/scripts/diffconfig -index 89abf77..5c07d57 100755 ---- a/scripts/diffconfig -+++ b/scripts/diffconfig -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # SPDX-License-Identifier: GPL-2.0 - # - # diffconfig - a tool to compare .config files. -@@ -54,16 +54,16 @@ def print_config(op, config, value, new_value): - if merge_style: - if new_value: - if new_value=="n": -- print("# CONFIG_%s is not set" % config) -+ print(("# CONFIG_%s is not set" % config)) - else: -- print("CONFIG_%s=%s" % (config, new_value)) -+ print(("CONFIG_%s=%s" % (config, new_value))) - else: - if op=="-": -- print("-%s %s" % (config, value)) -+ print(("-%s %s" % (config, value))) - elif op=="+": -- print("+%s %s" % (config, new_value)) -+ print(("+%s %s" % (config, new_value))) - else: -- print(" %s %s -> %s" % (config, value, new_value)) -+ print((" %s %s -> %s" % (config, value, new_value))) - - def main(): - global merge_style -@@ -98,7 +98,7 @@ def main(): - b = readconfig(open(configb_filename)) - except (IOError): - e = sys.exc_info()[1] -- print("I/O error[%s]: %s\n" % (e.args[0],e.args[1])) -+ print(("I/O error[%s]: %s\n" % (e.args[0],e.args[1]))) - usage() - - # print items in a but not b (accumulate, sort and print) -diff --git a/scripts/show_delta b/scripts/show_delta -index 5b36500..78b4b73 100755 ---- a/scripts/show_delta -+++ b/scripts/show_delta -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # - # show_deltas: Read list of printk messages instrumented with - # time data, and format with time deltas. -@@ -94,11 +94,11 @@ def main(): - try: - lines = open(filein,"r").readlines() - except: -- print ("Problem opening file: %s" % filein) -+ print(("Problem opening file: %s" % filein)) - sys.exit(1) - - if base_str: -- print ('base= "%s"' % base_str) -+ print(('base= "%s"' % base_str)) - # assume a numeric base. If that fails, try searching - # for a matching line. - try: -@@ -117,12 +117,12 @@ def main(): - # stop at first match - break - if not found: -- print ('Couldn\'t find line matching base pattern "%s"' % base_str) -+ print(('Couldn\'t find line matching base pattern "%s"' % base_str)) - sys.exit(1) - else: - base_time = 0.0 - - for line in lines: -- print (convert_line(line, base_time),) -+ print((convert_line(line, base_time),)) - - main() -diff --git a/scripts/spdxcheck.py b/scripts/spdxcheck.py -index e559c62..1b88b6b 100755 ---- a/scripts/spdxcheck.py -+++ b/scripts/spdxcheck.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # SPDX-License-Identifier: GPL-2.0 - # Copyright Thomas Gleixner - -diff --git a/scripts/tracing/draw_functrace.py b/scripts/tracing/draw_functrace.py -index 9b6dd4f..87974cc 100755 ---- a/scripts/tracing/draw_functrace.py -+++ b/scripts/tracing/draw_functrace.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - """ - Copyright 2008 (c) Frederic Weisbecker -@@ -123,7 +123,7 @@ def main(): - tree = tree.getParent(caller) - tree = tree.calls(callee, calltime) - -- print(CallTree.ROOT) -+ print((CallTree.ROOT)) - - if __name__ == "__main__": - main() -diff --git a/tools/hv/lsvmbus b/tools/hv/lsvmbus -index 099f2c4..80517ab 100644 ---- a/tools/hv/lsvmbus -+++ b/tools/hv/lsvmbus -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # SPDX-License-Identifier: GPL-2.0 - - import os -@@ -17,7 +17,7 @@ if options.verbose is not None: - - vmbus_sys_path = '/sys/bus/vmbus/devices' - if not os.path.isdir(vmbus_sys_path): -- print("%s doesn't exist: exiting..." % vmbus_sys_path) -+ print(("%s doesn't exist: exiting..." % vmbus_sys_path)) - exit(-1) - - vmbus_dev_dict = { -@@ -96,17 +96,17 @@ format2 = '%2s: Class_ID = %s - %s\n\tDevice_ID = %s\n\tSysfs path: %s\n%s' - - for d in vmbus_dev_list: - if verbose == 0: -- print(('VMBUS ID ' + format0) % (d.vmbus_id, d.dev_desc)) -+ print((('VMBUS ID ' + format0) % (d.vmbus_id, d.dev_desc))) - elif verbose == 1: -- print( -+ print(( - ('VMBUS ID ' + format1) % - (d.vmbus_id, d.class_id, d.dev_desc, d.chn_vp_mapping) -- ) -+ )) - else: -- print( -+ print(( - ('VMBUS ID ' + format2) % - ( - d.vmbus_id, d.class_id, d.dev_desc, - d.device_id, d.sysfs_path, d.chn_vp_mapping - ) -- ) -+ )) -diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat -index f6ca0a2..054c80f 100755 ---- a/tools/kvm/kvm_stat/kvm_stat -+++ b/tools/kvm/kvm_stat/kvm_stat -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # - # top-like utility for displaying kvm statistics - # -@@ -19,7 +19,7 @@ Three different ways of output formatting are available: - - The data is sampled from the KVM's debugfs entries and its perf events. - """ --from __future__ import print_function -+ - - import curses - import sys -@@ -388,9 +388,9 @@ class Group(object): - """ - length = 8 * (1 + len(self.events)) - read_format = 'xxxxxxxx' + 'Q' * len(self.events) -- return dict(zip([event.name for event in self.events], -+ return dict(list(zip([event.name for event in self.events], - struct.unpack(read_format, -- os.read(self.events[0].fd, length)))) -+ os.read(self.events[0].fd, length))))) - - - class Event(object): -@@ -600,8 +600,8 @@ class TracepointProvider(Provider): - integers.append(int(member)) - else: - int_range = member.split('-') -- integers.extend(range(int(int_range[0]), -- int(int_range[1]) + 1)) -+ integers.extend(list(range(int(int_range[0]), -+ int(int_range[1]) + 1))) - - return integers - -@@ -704,7 +704,7 @@ class TracepointProvider(Provider): - """Returns 'event name: current value' for all enabled events.""" - ret = defaultdict(int) - for group in self.group_leaders: -- for name, val in group.read().items(): -+ for name, val in list(group.read().items()): - if name not in self._fields: - continue - parent = ARCH.tracepoint_is_child(name) -@@ -771,7 +771,7 @@ class DebugfsProvider(Provider): - if len(vms) == 0: - self.do_read = False - -- self.paths = list(filter(lambda x: "{}-".format(pid) in x, vms)) -+ self.paths = list([x for x in vms if "{}-".format(pid) in x]) - - else: - self.paths = [] -@@ -959,7 +959,7 @@ class Stats(object): - for provider in self.providers: - if isinstance(provider, DebugfsProvider): - for key in provider.fields: -- if key in self.values.keys(): -+ if key in list(self.values.keys()): - del self.values[key] - else: - oldvals = self.values.copy() -@@ -1165,7 +1165,7 @@ class Tui(object): - sorted_items = [] - # we can't rule out child events to appear prior to parents even - # when sorted - separate out all children first, and add in later -- for key, values in sorted(stats.items(), key=sortkey, -+ for key, values in sorted(list(stats.items()), key=sortkey, - reverse=True): - if values == (0, 0): - continue -@@ -1201,7 +1201,7 @@ class Tui(object): - stats = self.stats.get(self._display_guests) - total = 0. - ctotal = 0. -- for key, values in stats.items(): -+ for key, values in list(stats.items()): - if self._display_guests: - if self.get_gname_from_pid(key): - total += values.value -@@ -1699,7 +1699,7 @@ def main(): - if options.fields == 'help': - stats.fields_filter = None - event_list = [] -- for key in stats.get().keys(): -+ for key in list(stats.get().keys()): - event_list.append(key.split('(', 1)[0]) - sys.stdout.write(' ' + '\n '.join(sorted(set(event_list))) + '\n') - sys.exit(0) -diff --git a/tools/perf/python/tracepoint.py b/tools/perf/python/tracepoint.py -index eb76f65..4afbeeb 100755 ---- a/tools/perf/python/tracepoint.py -+++ b/tools/perf/python/tracepoint.py -@@ -1,4 +1,4 @@ --#! /usr/bin/python -+#!/usr/bin/python3 - # SPDX-License-Identifier: GPL-2.0 - # -*- python -*- - # -*- coding: utf-8 -*- -@@ -34,7 +34,7 @@ def main(): - if not isinstance(event, perf.sample_event): - continue - -- print "time %u prev_comm=%s prev_pid=%d prev_prio=%d prev_state=0x%x ==> next_comm=%s next_pid=%d next_prio=%d" % ( -+ print("time %u prev_comm=%s prev_pid=%d prev_prio=%d prev_state=0x%x ==> next_comm=%s next_pid=%d next_prio=%d" % ( - event.sample_time, - event.prev_comm, - event.prev_pid, -@@ -42,7 +42,7 @@ def main(): - event.prev_state, - event.next_comm, - event.next_pid, -- event.next_prio) -+ event.next_prio)) - - if __name__ == '__main__': - main() -diff --git a/tools/perf/python/twatch.py b/tools/perf/python/twatch.py -index 0a29c5c..987ddf7 100755 ---- a/tools/perf/python/twatch.py -+++ b/tools/perf/python/twatch.py -@@ -1,4 +1,4 @@ --#! /usr/bin/python -+#!/usr/bin/python3 - # -*- python -*- - # -*- coding: utf-8 -*- - # twatch - Experimental use of the perf python interface -@@ -42,10 +42,10 @@ def main(context_switch = 0, thread = -1): - event = evlist.read_on_cpu(cpu) - if not event: - continue -- print("cpu: {0}, pid: {1}, tid: {2} {3}".format(event.sample_cpu, -+ print(("cpu: {0}, pid: {1}, tid: {2} {3}".format(event.sample_cpu, - event.sample_pid, - event.sample_tid, -- event)) -+ event))) - - if __name__ == '__main__': - """ -diff --git a/tools/perf/scripts/python/call-graph-from-sql.py b/tools/perf/scripts/python/call-graph-from-sql.py -index b494a67..d30af15 100644 ---- a/tools/perf/scripts/python/call-graph-from-sql.py -+++ b/tools/perf/scripts/python/call-graph-from-sql.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python2 -+#!/usr/bin/python3 - # call-graph-from-sql.py: create call-graph from sql database - # Copyright (c) 2014-2017, Intel Corporation. - # -@@ -84,7 +84,7 @@ class TreeItem(): - ret = query.exec_('SELECT id, comm FROM comms') - if not ret: - raise Exception("Query failed: " + query.lastError().text()) -- while query.next(): -+ while next(query): - if not query.value(0): - continue - child_item = TreeItem(self.db, self.child_count, self) -@@ -102,7 +102,7 @@ class TreeItem(): - ret = query.exec_('SELECT thread_id, ( SELECT pid FROM threads WHERE id = thread_id ), ( SELECT tid FROM threads WHERE id = thread_id ) FROM comm_threads WHERE comm_id = ' + str(comm_id)) - if not ret: - raise Exception("Query failed: " + query.lastError().text()) -- while query.next(): -+ while next(query): - child_item = TreeItem(self.db, self.child_count, self) - self.child_items.append(child_item) - self.child_count += 1 -@@ -172,7 +172,7 @@ class TreeItem(): - total_branch_count = 0 - time = 0 - total_time = 0 -- while query.next(): -+ while next(query): - if query.value(1) == last_call_path_id: - count += 1 - branch_count += query.value(2) -@@ -292,7 +292,7 @@ class MainWindow(QMainWindow): - - if __name__ == '__main__': - if (len(sys.argv) < 2): -- print >> sys.stderr, "Usage is: call-graph-from-sql.py " -+ print("Usage is: call-graph-from-sql.py ", file=sys.stderr) - raise Exception("Too few arguments") - - dbname = sys.argv[1] -diff --git a/tools/perf/scripts/python/sched-migration.py b/tools/perf/scripts/python/sched-migration.py -index 3473e7f..981562c 100644 ---- a/tools/perf/scripts/python/sched-migration.py -+++ b/tools/perf/scripts/python/sched-migration.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # - # Cpu task migration overview toy - # -@@ -9,14 +9,14 @@ - # This software is distributed under the terms of the GNU General - # Public License ("GPL") version 2 as published by the Free Software - # Foundation. --from __future__ import print_function -+ - - import os - import sys - - from collections import defaultdict - try: -- from UserList import UserList -+ from collections import UserList - except ImportError: - # Python 3: UserList moved to the collections package - from collections import UserList -diff --git a/tools/perf/scripts/python/stat-cpi.py b/tools/perf/scripts/python/stat-cpi.py -index 8410672..246ce58 100644 ---- a/tools/perf/scripts/python/stat-cpi.py -+++ b/tools/perf/scripts/python/stat-cpi.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # SPDX-License-Identifier: GPL-2.0 - - data = {} -@@ -59,7 +59,7 @@ def stat__interval(time): - if ins != 0: - cpi = cyc/float(ins) - -- print "%15f: cpu %d, thread %d -> cpi %f (%d/%d)" % (time/(float(1000000000)), cpu, thread, cpi, cyc, ins) -+ print("%15f: cpu %d, thread %d -> cpi %f (%d/%d)" % (time/(float(1000000000)), cpu, thread, cpi, cyc, ins)) - - def trace_end(): - pass -diff --git a/tools/perf/tests/attr.py b/tools/perf/tests/attr.py -index 44090a9..42c241e 100644 ---- a/tools/perf/tests/attr.py -+++ b/tools/perf/tests/attr.py -@@ -1,4 +1,4 @@ --#! /usr/bin/python -+#!/usr/bin/python3 - # SPDX-License-Identifier: GPL-2.0 - - import os -@@ -8,7 +8,7 @@ import optparse - import tempfile - import logging - import shutil --import ConfigParser -+import configparser - - def data_equal(a, b): - # Allow multiple values in assignment separated by '|' -@@ -100,20 +100,20 @@ class Event(dict): - def equal(self, other): - for t in Event.terms: - log.debug(" [%s] %s %s" % (t, self[t], other[t])); -- if not self.has_key(t) or not other.has_key(t): -+ if t not in self or t not in other: - return False - if not data_equal(self[t], other[t]): - return False - return True - - def optional(self): -- if self.has_key('optional') and self['optional'] == '1': -+ if 'optional' in self and self['optional'] == '1': - return True - return False - - def diff(self, other): - for t in Event.terms: -- if not self.has_key(t) or not other.has_key(t): -+ if t not in self or t not in other: - continue - if not data_equal(self[t], other[t]): - log.warning("expected %s=%s, got %s" % (t, self[t], other[t])) -@@ -134,7 +134,7 @@ class Event(dict): - # - expected values assignments - class Test(object): - def __init__(self, path, options): -- parser = ConfigParser.SafeConfigParser() -+ parser = configparser.SafeConfigParser() - parser.read(path) - - log.warning("running '%s'" % path) -@@ -193,7 +193,7 @@ class Test(object): - return True - - def load_events(self, path, events): -- parser_event = ConfigParser.SafeConfigParser() -+ parser_event = configparser.SafeConfigParser() - parser_event.read(path) - - # The event record section header contains 'event' word, -@@ -207,7 +207,7 @@ class Test(object): - # Read parent event if there's any - if (':' in section): - base = section[section.index(':') + 1:] -- parser_base = ConfigParser.SafeConfigParser() -+ parser_base = configparser.SafeConfigParser() - parser_base.read(self.test_dir + '/' + base) - base_items = parser_base.items('event') - -@@ -236,11 +236,11 @@ class Test(object): - - # For each expected event find all matching - # events in result. Fail if there's not any. -- for exp_name, exp_event in expect.items(): -+ for exp_name, exp_event in list(expect.items()): - exp_list = [] - res_event = {} - log.debug(" matching [%s]" % exp_name) -- for res_name, res_event in result.items(): -+ for res_name, res_event in list(result.items()): - log.debug(" to [%s]" % res_name) - if (exp_event.equal(res_event)): - exp_list.append(res_name) -@@ -265,7 +265,7 @@ class Test(object): - - # For each defined group in the expected events - # check we match the same group in the result. -- for exp_name, exp_event in expect.items(): -+ for exp_name, exp_event in list(expect.items()): - group = exp_event.group - - if (group == ''): -@@ -282,12 +282,12 @@ class Test(object): - log.debug(" matched") - - def resolve_groups(self, events): -- for name, event in events.items(): -+ for name, event in list(events.items()): - group_fd = event['group_fd']; - if group_fd == '-1': - continue; - -- for iname, ievent in events.items(): -+ for iname, ievent in list(events.items()): - if (ievent['fd'] == group_fd): - event.group = iname - log.debug('[%s] has group leader [%s]' % (name, iname)) -@@ -322,9 +322,9 @@ def run_tests(options): - for f in glob.glob(options.test_dir + '/' + options.test): - try: - Test(f, options).run() -- except Unsup, obj: -+ except Unsup as obj: - log.warning("unsupp %s" % obj.getMsg()) -- except Notest, obj: -+ except Notest as obj: - log.warning("skipped %s" % obj.getMsg()) - - def setup_log(verbose): -@@ -373,7 +373,7 @@ def main(): - setup_log(options.verbose) - - if not options.test_dir: -- print 'FAILED no -d option specified' -+ print('FAILED no -d option specified') - sys.exit(-1) - - if not options.test: -@@ -382,8 +382,8 @@ def main(): - try: - run_tests(options) - -- except Fail, obj: -- print "FAILED %s" % obj.getMsg(); -+ except Fail as obj: -+ print("FAILED %s" % obj.getMsg()); - sys.exit(-1) - - sys.exit(0) -diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py -index 1942f6d..383a9fb 100644 ---- a/tools/perf/util/setup.py -+++ b/tools/perf/util/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - from os import getenv - from subprocess import Popen, PIPE -@@ -49,7 +49,7 @@ ext_sources = [f.strip() for f in open('util/python-ext-sources') - if len(f.strip()) > 0 and f[0] != '#'] - - # use full paths with source files --ext_sources = list(map(lambda x: '%s/%s' % (src_perf, x) , ext_sources)) -+ext_sources = list(['%s/%s' % (src_perf, x) for x in ext_sources]) - - perf = Extension('perf', - sources = ext_sources, -diff --git a/tools/power/pm-graph/bootgraph.py b/tools/power/pm-graph/bootgraph.py -index 8ee626c..9a174e0 100755 ---- a/tools/power/pm-graph/bootgraph.py -+++ b/tools/power/pm-graph/bootgraph.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python2 -+#!/usr/bin/python3 - # - # Tool for analyzing boot timing - # Copyright (c) 2013, Intel Corporation. -@@ -141,13 +141,13 @@ class SystemValues(aslib.SystemValues): - if arg in ['-h', '-v', '-cronjob', '-reboot', '-verbose']: - continue - elif arg in ['-o', '-dmesg', '-ftrace', '-func']: -- args.next() -+ next(args) - continue - elif arg == '-result': -- cmdline += ' %s "%s"' % (arg, os.path.abspath(args.next())) -+ cmdline += ' %s "%s"' % (arg, os.path.abspath(next(args))) - continue - elif arg == '-cgskip': -- file = self.configFile(args.next()) -+ file = self.configFile(next(args)) - cmdline += ' %s "%s"' % (arg, os.path.abspath(file)) - continue - cmdline += ' '+arg -@@ -157,11 +157,11 @@ class SystemValues(aslib.SystemValues): - return cmdline - def manualRebootRequired(self): - cmdline = self.kernelParams() -- print 'To generate a new timeline manually, follow these steps:\n' -- print '1. Add the CMDLINE string to your kernel command line.' -- print '2. Reboot the system.' -- print '3. After reboot, re-run this tool with the same arguments but no command (w/o -reboot or -manual).\n' -- print 'CMDLINE="%s"' % cmdline -+ print('To generate a new timeline manually, follow these steps:\n') -+ print('1. Add the CMDLINE string to your kernel command line.') -+ print('2. Reboot the system.') -+ print('3. After reboot, re-run this tool with the same arguments but no command (w/o -reboot or -manual).\n') -+ print('CMDLINE="%s"' % cmdline) - sys.exit() - def blGrub(self): - blcmd = '' -@@ -431,7 +431,7 @@ def parseTraceLog(data): - if len(cg.list) < 1 or cg.invalid or (cg.end - cg.start == 0): - continue - if(not cg.postProcess()): -- print('Sanity check failed for %s-%d' % (proc, pid)) -+ print(('Sanity check failed for %s-%d' % (proc, pid))) - continue - # match cg data to devices - devname = data.deviceMatch(pid, cg) -@@ -442,8 +442,8 @@ def parseTraceLog(data): - sysvals.vprint('%s callgraph found for %s %s-%d [%f - %f]' %\ - (kind, cg.name, proc, pid, cg.start, cg.end)) - elif len(cg.list) > 1000000: -- print 'WARNING: the callgraph found for %s is massive! (%d lines)' %\ -- (devname, len(cg.list)) -+ print('WARNING: the callgraph found for %s is massive! (%d lines)' %\ -+ (devname, len(cg.list))) - - # Function: retrieveLogs - # Description: -@@ -733,8 +733,8 @@ def updateCron(restore=False): - op.write('@reboot python %s\n' % sysvals.cronjobCmdString()) - op.close() - res = call([cmd, cronfile]) -- except Exception, e: -- print 'Exception: %s' % str(e) -+ except Exception as e: -+ print('Exception: %s' % str(e)) - shutil.move(backfile, cronfile) - res = -1 - if res != 0: -@@ -749,8 +749,8 @@ def updateGrub(restore=False): - try: - call(sysvals.blexec, stderr=PIPE, stdout=PIPE, - env={'PATH': '.:/sbin:/usr/sbin:/usr/bin:/sbin:/bin'}) -- except Exception, e: -- print 'Exception: %s\n' % str(e) -+ except Exception as e: -+ print('Exception: %s\n' % str(e)) - return - # extract the option and create a grub config without it - sysvals.rootUser(True) -@@ -796,8 +796,8 @@ def updateGrub(restore=False): - op.close() - res = call(sysvals.blexec) - os.remove(grubfile) -- except Exception, e: -- print 'Exception: %s' % str(e) -+ except Exception as e: -+ print('Exception: %s' % str(e)) - res = -1 - # cleanup - shutil.move(tempfile, grubfile) -@@ -821,7 +821,7 @@ def updateKernelParams(restore=False): - def doError(msg, help=False): - if help == True: - printHelp() -- print 'ERROR: %s\n' % msg -+ print('ERROR: %s\n' % msg) - sysvals.outputResult({'error':msg}) - sys.exit() - -@@ -830,7 +830,7 @@ def doError(msg, help=False): - # print out the help text - def printHelp(): - print('') -- print('%s v%s' % (sysvals.title, sysvals.version)) -+ print(('%s v%s' % (sysvals.title, sysvals.version))) - print('Usage: bootgraph ') - print('') - print('Description:') -@@ -895,7 +895,7 @@ if __name__ == '__main__': - printHelp() - sys.exit() - elif(arg == '-v'): -- print("Version %s" % sysvals.version) -+ print(("Version %s" % sysvals.version)) - sys.exit() - elif(arg == '-verbose'): - sysvals.verbose = True -@@ -912,13 +912,13 @@ if __name__ == '__main__': - sysvals.mincglen = aslib.getArgFloat('-mincg', args, 0.0, 10000.0) - elif(arg == '-cgfilter'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No callgraph functions supplied', True) - sysvals.setCallgraphFilter(val) - elif(arg == '-cgskip'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No file supplied', True) - if val.lower() in switchoff: -@@ -929,7 +929,7 @@ if __name__ == '__main__': - doError('%s does not exist' % cgskip) - elif(arg == '-bl'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No boot loader name supplied', True) - if val.lower() not in ['grub']: -@@ -942,7 +942,7 @@ if __name__ == '__main__': - sysvals.max_graph_depth = aslib.getArgInt('-maxdepth', args, 0, 1000) - elif(arg == '-func'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No filter functions supplied', True) - sysvals.useftrace = True -@@ -951,7 +951,7 @@ if __name__ == '__main__': - sysvals.setGraphFilter(val) - elif(arg == '-ftrace'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No ftrace file supplied', True) - if(os.path.exists(val) == False): -@@ -964,7 +964,7 @@ if __name__ == '__main__': - sysvals.cgexp = True - elif(arg == '-dmesg'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No dmesg file supplied', True) - if(os.path.exists(val) == False): -@@ -973,13 +973,13 @@ if __name__ == '__main__': - sysvals.dmesgfile = val - elif(arg == '-o'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No subdirectory name supplied', True) - sysvals.testdir = sysvals.setOutputFolder(val) - elif(arg == '-result'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No result file supplied', True) - sysvals.result = val -@@ -1013,10 +1013,10 @@ if __name__ == '__main__': - updateKernelParams() - elif cmd == 'flistall': - for f in sysvals.getBootFtraceFilterFunctions(): -- print f -+ print(f) - elif cmd == 'checkbl': - sysvals.getBootLoader() -- print 'Boot Loader: %s\n%s' % (sysvals.bootloader, sysvals.blexec) -+ print('Boot Loader: %s\n%s' % (sysvals.bootloader, sysvals.blexec)) - elif(cmd == 'sysinfo'): - sysvals.printSystemInfo(True) - sys.exit() -diff --git a/tools/power/pm-graph/sleepgraph.py b/tools/power/pm-graph/sleepgraph.py -index 0c76047..3a6c07f 100755 ---- a/tools/power/pm-graph/sleepgraph.py -+++ b/tools/power/pm-graph/sleepgraph.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python2 -+#!/usr/bin/python3 - # - # Tool for analyzing suspend/resume timing - # Copyright (c) 2013, Intel Corporation. -@@ -56,7 +56,7 @@ import re - import platform - from datetime import datetime - import struct --import ConfigParser -+import configparser - import gzip - from threading import Thread - from subprocess import call, Popen, PIPE -@@ -265,7 +265,7 @@ class SystemValues: - return True - if fatal: - msg = 'This command requires sysfs mount and root access' -- print('ERROR: %s\n') % msg -+ print(('ERROR: %s\n') % msg) - self.outputResult({'error':msg}) - sys.exit() - return False -@@ -274,7 +274,7 @@ class SystemValues: - return True - if fatal: - msg = 'This command must be run as root' -- print('ERROR: %s\n') % msg -+ print(('ERROR: %s\n') % msg) - self.outputResult({'error':msg}) - sys.exit() - return False -@@ -329,10 +329,10 @@ class SystemValues: - return - fmt = '%-24s: %s' - for name in sorted(out): -- print fmt % (name, out[name]) -- print fmt % ('cpucount', ('%d' % self.cpucount)) -- print fmt % ('memtotal', ('%d kB' % self.memtotal)) -- print fmt % ('memfree', ('%d kB' % self.memfree)) -+ print(fmt % (name, out[name])) -+ print(fmt % ('cpucount', ('%d' % self.cpucount))) -+ print(fmt % ('memtotal', ('%d kB' % self.memtotal))) -+ print(fmt % ('memfree', ('%d kB' % self.memfree))) - def cpuInfo(self): - self.cpucount = 0 - fp = open('/proc/cpuinfo', 'r') -@@ -447,9 +447,9 @@ class SystemValues: - if 'func' in self.tracefuncs[i]: - i = self.tracefuncs[i]['func'] - if i in master: -- print i -+ print(i) - else: -- print self.colorText(i) -+ print(self.colorText(i)) - def setFtraceFilterFunctions(self, list): - master = self.listFromFile(self.tpath+'available_filter_functions') - flist = '' -@@ -557,7 +557,7 @@ class SystemValues: - else: - kpl[2].append(name) - if output: -- print(' %s: %s' % (name, res)) -+ print((' %s: %s' % (name, res))) - kplist = kpl[0] + kpl[1] + kpl[2] + kpl[3] - # remove all failed ones from the list - for name in rejects: -@@ -571,7 +571,7 @@ class SystemValues: - if output: - check = self.fgetVal('kprobe_events') - linesack = (len(check.split('\n')) - 1) / 2 -- print(' kprobe functions enabled: %d/%d' % (linesack, linesout)) -+ print((' kprobe functions enabled: %d/%d' % (linesack, linesout))) - self.fsetVal('1', 'events/kprobes/enable') - def testKprobe(self, kname, kprobe): - self.fsetVal('0', 'events/kprobes/enable') -@@ -658,7 +658,7 @@ class SystemValues: - if tgtsize < 65536: - tgtsize = int(self.fgetVal('buffer_size_kb')) * cpus - break -- print 'Setting trace buffers to %d kB (%d kB per cpu)' % (tgtsize, tgtsize/cpus) -+ print('Setting trace buffers to %d kB (%d kB per cpu)' % (tgtsize, tgtsize/cpus)) - # initialize the callgraph trace - if(self.usecallgraph): - # set trace type -@@ -808,7 +808,7 @@ class DevProps: - def out(self, dev): - return '%s,%s,%d;' % (dev, self.altname, self.async) - def debug(self, dev): -- print '%s:\n\taltname = %s\n\t async = %s' % (dev, self.altname, self.async) -+ print('%s:\n\taltname = %s\n\t async = %s' % (dev, self.altname, self.async)) - def altName(self, dev): - if not self.altname or self.altname == dev: - return dev -@@ -1633,14 +1633,14 @@ class FTraceLine: - return len(str)/2 - def debugPrint(self, info=''): - if self.isLeaf(): -- print(' -- %12.6f (depth=%02d): %s(); (%.3f us) %s' % (self.time, \ -- self.depth, self.name, self.length*1000000, info)) -+ print((' -- %12.6f (depth=%02d): %s(); (%.3f us) %s' % (self.time, \ -+ self.depth, self.name, self.length*1000000, info))) - elif self.freturn: -- print(' -- %12.6f (depth=%02d): %s} (%.3f us) %s' % (self.time, \ -- self.depth, self.name, self.length*1000000, info)) -+ print((' -- %12.6f (depth=%02d): %s} (%.3f us) %s' % (self.time, \ -+ self.depth, self.name, self.length*1000000, info))) - else: -- print(' -- %12.6f (depth=%02d): %s() { (%.3f us) %s' % (self.time, \ -- self.depth, self.name, self.length*1000000, info)) -+ print((' -- %12.6f (depth=%02d): %s() { (%.3f us) %s' % (self.time, \ -+ self.depth, self.name, self.length*1000000, info))) - def startMarker(self): - # Is this the starting line of a suspend? - if not self.fevent: -@@ -1786,7 +1786,7 @@ class FTraceCallGraph: - if warning and ('[make leaf]', line) not in info: - info.append(('', line)) - if warning: -- print 'WARNING: ftrace data missing, corrections made:' -+ print('WARNING: ftrace data missing, corrections made:') - for i in info: - t, obj = i - if obj: -@@ -1846,11 +1846,11 @@ class FTraceCallGraph: - id = 'task %s' % (self.pid) - window = '(%f - %f)' % (self.start, line.time) - if(self.depth < 0): -- print('Data misalignment for '+id+\ -- ' (buffer overflow), ignoring this callback') -+ print(('Data misalignment for '+id+\ -+ ' (buffer overflow), ignoring this callback')) - else: -- print('Too much data for '+id+\ -- ' '+window+', ignoring this callback') -+ print(('Too much data for '+id+\ -+ ' '+window+', ignoring this callback')) - def slice(self, dev): - minicg = FTraceCallGraph(dev['pid'], self.sv) - minicg.name = self.name -@@ -1875,7 +1875,7 @@ class FTraceCallGraph: - # bring the depth back to 0 with additional returns - fixed = False - last = self.list[-1] -- for i in reversed(range(enddepth)): -+ for i in reversed(list(range(enddepth))): - t = FTraceLine(last.time) - t.depth = i - t.freturn = True -@@ -1902,7 +1902,7 @@ class FTraceCallGraph: - elif l.isReturn(): - if(l.depth not in stack): - if self.sv.verbose: -- print 'Post Process Error: Depth missing' -+ print('Post Process Error: Depth missing') - l.debugPrint() - return False - # calculate call length from call/return lines -@@ -1919,7 +1919,7 @@ class FTraceCallGraph: - return True - elif(cnt < 0): - if self.sv.verbose: -- print 'Post Process Error: Depth is less than 0' -+ print('Post Process Error: Depth is less than 0') - return False - # trace ended before call tree finished - return self.repair(cnt) -@@ -1978,19 +1978,19 @@ class FTraceCallGraph: - phase, myname = out - data.dmesg[phase]['list'][myname]['ftrace'] = self - def debugPrint(self, info=''): -- print('%s pid=%d [%f - %f] %.3f us') % \ -+ print(('%s pid=%d [%f - %f] %.3f us') % \ - (self.name, self.pid, self.start, self.end, -- (self.end - self.start)*1000000) -+ (self.end - self.start)*1000000)) - for l in self.list: - if l.isLeaf(): -- print('%f (%02d): %s(); (%.3f us)%s' % (l.time, \ -- l.depth, l.name, l.length*1000000, info)) -+ print(('%f (%02d): %s(); (%.3f us)%s' % (l.time, \ -+ l.depth, l.name, l.length*1000000, info))) - elif l.freturn: -- print('%f (%02d): %s} (%.3f us)%s' % (l.time, \ -- l.depth, l.name, l.length*1000000, info)) -+ print(('%f (%02d): %s} (%.3f us)%s' % (l.time, \ -+ l.depth, l.name, l.length*1000000, info))) - else: -- print('%f (%02d): %s() { (%.3f us)%s' % (l.time, \ -- l.depth, l.name, l.length*1000000, info)) -+ print(('%f (%02d): %s() { (%.3f us)%s' % (l.time, \ -+ l.depth, l.name, l.length*1000000, info))) - print(' ') - - class DevItem: -@@ -3040,8 +3040,8 @@ def parseTraceLog(live=False): - sortkey = '%f%f%d' % (cg.start, cg.end, pid) - sortlist[sortkey] = cg - elif len(cg.list) > 1000000: -- print 'WARNING: the callgraph for %s is massive (%d lines)' %\ -- (devname, len(cg.list)) -+ print('WARNING: the callgraph for %s is massive (%d lines)' %\ -+ (devname, len(cg.list))) - # create blocks for orphan cg data - for sortkey in sorted(sortlist): - cg = sortlist[sortkey] -@@ -3061,7 +3061,7 @@ def parseTraceLog(live=False): - for p in data.phases: - if(data.dmesg[p]['start'] < 0 and data.dmesg[p]['end'] < 0): - if not terr: -- print 'TEST%s FAILED: %s failed in %s phase' % (tn, sysvals.suspendmode, lp) -+ print('TEST%s FAILED: %s failed in %s phase' % (tn, sysvals.suspendmode, lp)) - terr = '%s%s failed in %s phase' % (sysvals.suspendmode, tn, lp) - error.append(terr) - sysvals.vprint('WARNING: phase "%s" is missing!' % p) -@@ -3158,8 +3158,8 @@ def loadKernelLog(): - if data: - testruns.append(data) - if len(testruns) < 1: -- print('ERROR: dmesg log has no suspend/resume data: %s' \ -- % sysvals.dmesgfile) -+ print(('ERROR: dmesg log has no suspend/resume data: %s' \ -+ % sysvals.dmesgfile)) - - # fix lines with same timestamp/function with the call and return swapped - for data in testruns: -@@ -3401,10 +3401,10 @@ def parseKernelLog(data): - lp = data.phases[0] - for p in data.phases: - if(data.dmesg[p]['start'] < 0 and data.dmesg[p]['end'] < 0): -- print('WARNING: phase "%s" is missing, something went wrong!' % p) -- print(' In %s, this dmesg line denotes the start of %s:' % \ -- (sysvals.suspendmode, p)) -- print(' "%s"' % dm[p]) -+ print(('WARNING: phase "%s" is missing, something went wrong!' % p)) -+ print((' In %s, this dmesg line denotes the start of %s:' % \ -+ (sysvals.suspendmode, p))) -+ print((' "%s"' % dm[p])) - if(data.dmesg[p]['start'] < 0): - data.dmesg[p]['start'] = data.dmesg[lp]['end'] - if(p == 'resume_machine'): -@@ -4526,14 +4526,14 @@ def setRuntimeSuspend(before=True): - sv.rslist = deviceInfo(sv.rstgt) - for i in sv.rslist: - sv.setVal(sv.rsval, i) -- print('runtime suspend %s on all devices (%d changed)' % (sv.rsdir, len(sv.rslist))) -+ print(('runtime suspend %s on all devices (%d changed)' % (sv.rsdir, len(sv.rslist)))) - print('waiting 5 seconds...') - time.sleep(5) - else: - # runtime suspend re-enable or re-disable - for i in sv.rslist: - sv.setVal(sv.rstgt, i) -- print('runtime suspend settings restored on %d devices' % len(sv.rslist)) -+ print(('runtime suspend settings restored on %d devices' % len(sv.rslist))) - - # Function: executeSuspend - # Description: -@@ -4581,7 +4581,7 @@ def executeSuspend(): - print('SUSPEND START (press a key to resume)') - # set rtcwake - if(sysvals.rtcwake): -- print('will issue an rtcwake in %d seconds' % sysvals.rtcwaketime) -+ print(('will issue an rtcwake in %d seconds' % sysvals.rtcwaketime)) - sysvals.rtcWakeAlarmOn() - # start of suspend trace marker - if(sysvals.usecallgraph or sysvals.usetraceevents): -@@ -4723,7 +4723,7 @@ def deviceInfo(output=''): - ms2nice(power['runtime_active_time']), \ - ms2nice(power['runtime_suspended_time'])) - for i in sorted(lines): -- print lines[i] -+ print(lines[i]) - return res - - # Function: devProps -@@ -5056,16 +5056,16 @@ def getFPDT(output): - table = struct.unpack('4sIBB6s8sI4sI', buf[0:36]) - if(output): - print('') -- print('Firmware Performance Data Table (%s)' % table[0]) -- print(' Signature : %s' % table[0]) -- print(' Table Length : %u' % table[1]) -- print(' Revision : %u' % table[2]) -- print(' Checksum : 0x%x' % table[3]) -- print(' OEM ID : %s' % table[4]) -- print(' OEM Table ID : %s' % table[5]) -- print(' OEM Revision : %u' % table[6]) -- print(' Creator ID : %s' % table[7]) -- print(' Creator Revision : 0x%x' % table[8]) -+ print(('Firmware Performance Data Table (%s)' % table[0])) -+ print((' Signature : %s' % table[0])) -+ print((' Table Length : %u' % table[1])) -+ print((' Revision : %u' % table[2])) -+ print((' Checksum : 0x%x' % table[3])) -+ print((' OEM ID : %s' % table[4])) -+ print((' OEM Table ID : %s' % table[5])) -+ print((' OEM Revision : %u' % table[6])) -+ print((' Creator ID : %s' % table[7])) -+ print((' Creator Revision : 0x%x' % table[8])) - print('') - - if(table[0] != 'FPDT'): -@@ -5092,22 +5092,22 @@ def getFPDT(output): - first = fp.read(8) - except: - if(output): -- print('Bad address 0x%x in %s' % (addr, sysvals.mempath)) -+ print(('Bad address 0x%x in %s' % (addr, sysvals.mempath))) - return [0, 0] - rechead = struct.unpack('4sI', first) - recdata = fp.read(rechead[1]-8) - if(rechead[0] == 'FBPT'): - record = struct.unpack('HBBIQQQQQ', recdata) - if(output): -- print('%s (%s)' % (rectype[header[0]], rechead[0])) -- print(' Reset END : %u ns' % record[4]) -- print(' OS Loader LoadImage Start : %u ns' % record[5]) -- print(' OS Loader StartImage Start : %u ns' % record[6]) -- print(' ExitBootServices Entry : %u ns' % record[7]) -- print(' ExitBootServices Exit : %u ns' % record[8]) -+ print(('%s (%s)' % (rectype[header[0]], rechead[0]))) -+ print((' Reset END : %u ns' % record[4])) -+ print((' OS Loader LoadImage Start : %u ns' % record[5])) -+ print((' OS Loader StartImage Start : %u ns' % record[6])) -+ print((' ExitBootServices Entry : %u ns' % record[7])) -+ print((' ExitBootServices Exit : %u ns' % record[8])) - elif(rechead[0] == 'S3PT'): - if(output): -- print('%s (%s)' % (rectype[header[0]], rechead[0])) -+ print(('%s (%s)' % (rectype[header[0]], rechead[0]))) - j = 0 - while(j < len(recdata)): - prechead = struct.unpack('HBB', recdata[j:j+4]) -@@ -5117,24 +5117,24 @@ def getFPDT(output): - record = struct.unpack('IIQQ', recdata[j:j+prechead[1]]) - fwData[1] = record[2] - if(output): -- print(' %s' % prectype[prechead[0]]) -- print(' Resume Count : %u' % \ -- record[1]) -- print(' FullResume : %u ns' % \ -- record[2]) -- print(' AverageResume : %u ns' % \ -- record[3]) -+ print((' %s' % prectype[prechead[0]])) -+ print((' Resume Count : %u' % \ -+ record[1])) -+ print((' FullResume : %u ns' % \ -+ record[2])) -+ print((' AverageResume : %u ns' % \ -+ record[3])) - elif(prechead[0] == 1): - record = struct.unpack('QQ', recdata[j+4:j+prechead[1]]) - fwData[0] = record[1] - record[0] - if(output): -- print(' %s' % prectype[prechead[0]]) -- print(' SuspendStart : %u ns' % \ -- record[0]) -- print(' SuspendEnd : %u ns' % \ -- record[1]) -- print(' SuspendTime : %u ns' % \ -- fwData[0]) -+ print((' %s' % prectype[prechead[0]])) -+ print((' SuspendStart : %u ns' % \ -+ record[0])) -+ print((' SuspendEnd : %u ns' % \ -+ record[1])) -+ print((' SuspendTime : %u ns' % \ -+ fwData[0])) - j += prechead[1] - if(output): - print('') -@@ -5151,13 +5151,13 @@ def getFPDT(output): - def statusCheck(probecheck=False): - status = True - -- print('Checking this system (%s)...' % platform.node()) -+ print(('Checking this system (%s)...' % platform.node())) - - # check we have root access - res = sysvals.colorText('NO (No features of this tool will work!)') - if(sysvals.rootCheck(False)): - res = 'YES' -- print(' have root access: %s' % res) -+ print((' have root access: %s' % res)) - if(res != 'YES'): - print(' Try running this script with sudo') - return False -@@ -5166,7 +5166,7 @@ def statusCheck(probecheck=False): - res = sysvals.colorText('NO (No features of this tool will work!)') - if(os.path.exists(sysvals.powerfile)): - res = 'YES' -- print(' is sysfs mounted: %s' % res) -+ print((' is sysfs mounted: %s' % res)) - if(res != 'YES'): - return False - -@@ -5178,9 +5178,9 @@ def statusCheck(probecheck=False): - res = 'YES' - else: - status = False -- print(' is "%s" a valid power mode: %s' % (sysvals.suspendmode, res)) -+ print((' is "%s" a valid power mode: %s' % (sysvals.suspendmode, res))) - if(res == 'NO'): -- print(' valid power modes are: %s' % modes) -+ print((' valid power modes are: %s' % modes)) - print(' please choose one with -m') - - # check if ftrace is available -@@ -5190,7 +5190,7 @@ def statusCheck(probecheck=False): - res = 'YES' - elif(sysvals.usecallgraph): - status = False -- print(' is ftrace supported: %s' % res) -+ print((' is ftrace supported: %s' % res)) - - # check if kprobes are available - res = sysvals.colorText('NO') -@@ -5199,7 +5199,7 @@ def statusCheck(probecheck=False): - res = 'YES' - else: - sysvals.usedevsrc = False -- print(' are kprobes supported: %s' % res) -+ print((' are kprobes supported: %s' % res)) - - # what data source are we using - res = 'DMESG' -@@ -5210,7 +5210,7 @@ def statusCheck(probecheck=False): - sysvals.usetraceevents = False - if(sysvals.usetraceevents): - res = 'FTRACE (all trace events found)' -- print(' timeline data source: %s' % res) -+ print((' timeline data source: %s' % res)) - - # check if rtcwake - res = sysvals.colorText('NO') -@@ -5218,7 +5218,7 @@ def statusCheck(probecheck=False): - res = 'YES' - elif(sysvals.rtcwake): - status = False -- print(' is rtcwake supported: %s' % res) -+ print((' is rtcwake supported: %s' % res)) - - if not probecheck: - return status -@@ -5243,7 +5243,7 @@ def statusCheck(probecheck=False): - def doError(msg, help=False): - if(help == True): - printHelp() -- print('ERROR: %s\n') % msg -+ print(('ERROR: %s\n') % msg) - sysvals.outputResult({'error':msg}) - sys.exit() - -@@ -5253,7 +5253,7 @@ def doError(msg, help=False): - def getArgInt(name, args, min, max, main=True): - if main: - try: -- arg = args.next() -+ arg = next(args) - except: - doError(name+': no argument supplied', True) - else: -@@ -5272,7 +5272,7 @@ def getArgInt(name, args, min, max, main=True): - def getArgFloat(name, args, min, max, main=True): - if main: - try: -- arg = args.next() -+ arg = next(args) - except: - doError(name+': no argument supplied', True) - else: -@@ -5388,7 +5388,7 @@ def runSummary(subdir, local=True, genhtml=False): - outpath = inpath - if local: - outpath = os.path.abspath('.') -- print('Generating a summary of folder "%s"' % inpath) -+ print(('Generating a summary of folder "%s"' % inpath)) - if genhtml: - for dirname, dirnames, filenames in os.walk(subdir): - sysvals.dmesgfile = sysvals.ftracefile = sysvals.htmlfile = '' -@@ -5400,9 +5400,9 @@ def runSummary(subdir, local=True, genhtml=False): - sysvals.setOutputFile() - if sysvals.ftracefile and sysvals.htmlfile and \ - not os.path.exists(sysvals.htmlfile): -- print('FTRACE: %s' % sysvals.ftracefile) -+ print(('FTRACE: %s' % sysvals.ftracefile)) - if sysvals.dmesgfile: -- print('DMESG : %s' % sysvals.dmesgfile) -+ print(('DMESG : %s' % sysvals.dmesgfile)) - rerunTest() - testruns = [] - for dirname, dirnames, filenames in os.walk(subdir): -@@ -5441,7 +5441,7 @@ def runSummary(subdir, local=True, genhtml=False): - } - testruns.append(data) - outfile = os.path.join(outpath, 'summary.html') -- print('Summary file: %s' % outfile) -+ print(('Summary file: %s' % outfile)) - createHTMLSummarySimple(testruns, outfile, inpath) - - # Function: checkArgBool -@@ -5459,7 +5459,7 @@ def checkArgBool(name, value): - # Description: - # Configure the script via the info in a config file - def configFromFile(file): -- Config = ConfigParser.ConfigParser() -+ Config = configparser.ConfigParser() - - Config.read(file) - sections = Config.sections() -@@ -5661,7 +5661,7 @@ def configFromFile(file): - # print out the help text - def printHelp(): - print('') -- print('%s v%s' % (sysvals.title, sysvals.version)) -+ print(('%s v%s' % (sysvals.title, sysvals.version))) - print('Usage: sudo sleepgraph ') - print('') - print('Description:') -@@ -5686,7 +5686,7 @@ def printHelp(): - print(' -v Print the current tool version') - print(' -config fn Pull arguments and config options from file fn') - print(' -verbose Print extra information during execution and analysis') -- print(' -m mode Mode to initiate for suspend (default: %s)') % (sysvals.suspendmode) -+ print((' -m mode Mode to initiate for suspend (default: %s)') % (sysvals.suspendmode)) - print(' -o name Overrides the output subdirectory name when running a new test') - print(' default: suspend-{date}-{time}') - print(' -rtcwake t Wakeup t seconds after suspend, set t to "off" to disable (default: 15)') -@@ -5753,7 +5753,7 @@ if __name__ == '__main__': - for arg in args: - if(arg == '-m'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No mode supplied', True) - if val == 'command' and not sysvals.testcommand: -@@ -5765,7 +5765,7 @@ if __name__ == '__main__': - printHelp() - sys.exit() - elif(arg == '-v'): -- print("Version %s" % sysvals.version) -+ print(("Version %s" % sysvals.version)) - sys.exit() - elif(arg == '-x2'): - sysvals.execcount = 2 -@@ -5797,7 +5797,7 @@ if __name__ == '__main__': - sysvals.gzip = True - elif(arg == '-rs'): - try: -- val = args.next() -+ val = next(args) - except: - doError('-rs requires "enable" or "disable"', True) - if val.lower() in switchvalues: -@@ -5809,7 +5809,7 @@ if __name__ == '__main__': - doError('invalid option: %s, use "enable/disable" or "on/off"' % val, True) - elif(arg == '-display'): - try: -- val = args.next() -+ val = next(args) - except: - doError('-display requires "on" or "off"', True) - if val.lower() in switchvalues: -@@ -5823,7 +5823,7 @@ if __name__ == '__main__': - sysvals.max_graph_depth = getArgInt('-maxdepth', args, 0, 1000) - elif(arg == '-rtcwake'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No rtcwake time supplied', True) - if val.lower() in switchoff: -@@ -5843,7 +5843,7 @@ if __name__ == '__main__': - sysvals.cgtest = getArgInt('-cgtest', args, 0, 1) - elif(arg == '-cgphase'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No phase name supplied', True) - d = Data(0) -@@ -5853,13 +5853,13 @@ if __name__ == '__main__': - sysvals.cgphase = val - elif(arg == '-cgfilter'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No callgraph functions supplied', True) - sysvals.setCallgraphFilter(val) - elif(arg == '-cgskip'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No file supplied', True) - if val.lower() in switchoff: -@@ -5874,7 +5874,7 @@ if __name__ == '__main__': - sysvals.callloopmaxlen = getArgFloat('-callloop-maxlen', args, 0.0, 1.0) - elif(arg == '-cmd'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No command string supplied', True) - sysvals.testcommand = val -@@ -5889,13 +5889,13 @@ if __name__ == '__main__': - sysvals.multitest['delay'] = getArgInt('-multi n d (delay between tests)', args, 0, 3600) - elif(arg == '-o'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No subdirectory name supplied', True) - sysvals.outdir = sysvals.setOutputFolder(val) - elif(arg == '-config'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No text file supplied', True) - file = sysvals.configFile(val) -@@ -5904,7 +5904,7 @@ if __name__ == '__main__': - configFromFile(file) - elif(arg == '-fadd'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No text file supplied', True) - file = sysvals.configFile(val) -@@ -5913,7 +5913,7 @@ if __name__ == '__main__': - sysvals.addFtraceFilterFunctions(file) - elif(arg == '-dmesg'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No dmesg file supplied', True) - sysvals.notestrun = True -@@ -5922,7 +5922,7 @@ if __name__ == '__main__': - doError('%s does not exist' % sysvals.dmesgfile) - elif(arg == '-ftrace'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No ftrace file supplied', True) - sysvals.notestrun = True -@@ -5931,7 +5931,7 @@ if __name__ == '__main__': - doError('%s does not exist' % sysvals.ftracefile) - elif(arg == '-summary'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No directory supplied', True) - cmd = 'summary' -@@ -5941,13 +5941,13 @@ if __name__ == '__main__': - doError('%s is not accesible' % val) - elif(arg == '-filter'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No devnames supplied', True) - sysvals.setDeviceFilter(val) - elif(arg == '-result'): - try: -- val = args.next() -+ val = next(args) - except: - doError('No result file supplied', True) - sysvals.result = val -@@ -5980,13 +5980,13 @@ if __name__ == '__main__': - elif(cmd == 'fpdt'): - getFPDT(True) - elif(cmd == 'battery'): -- print 'AC Connect: %s\nCharge: %d' % getBattery() -+ print('AC Connect: %s\nCharge: %d' % getBattery()) - elif(cmd == 'sysinfo'): - sysvals.printSystemInfo(True) - elif(cmd == 'devinfo'): - deviceInfo() - elif(cmd == 'modes'): -- print getModes() -+ print(getModes()) - elif(cmd == 'flist'): - sysvals.getFtraceFilterFunctions(True) - elif(cmd == 'flistall'): -@@ -6036,13 +6036,13 @@ if __name__ == '__main__': - os.mkdir(sysvals.outdir) - for i in range(sysvals.multitest['count']): - if(i != 0): -- print('Waiting %d seconds...' % (sysvals.multitest['delay'])) -+ print(('Waiting %d seconds...' % (sysvals.multitest['delay']))) - time.sleep(sysvals.multitest['delay']) -- print('TEST (%d/%d) START' % (i+1, sysvals.multitest['count'])) -+ print(('TEST (%d/%d) START' % (i+1, sysvals.multitest['count']))) - fmt = 'suspend-%y%m%d-%H%M%S' - sysvals.testdir = os.path.join(sysvals.outdir, datetime.now().strftime(fmt)) - runTest(i+1) -- print('TEST (%d/%d) COMPLETE' % (i+1, sysvals.multitest['count'])) -+ print(('TEST (%d/%d) COMPLETE' % (i+1, sysvals.multitest['count']))) - sysvals.logmsg = '' - if not sysvals.skiphtml: - runSummary(sysvals.outdir, False, False) -diff --git a/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py b/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py -index 2fa3c57..b1e2abc 100755 ---- a/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py -+++ b/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - # - """ This utility can be used to debug and tune the performance of the -@@ -22,7 +22,7 @@ Prerequisites: - see print_help(): for Usage and Output details - - """ --from __future__ import print_function -+ - from datetime import datetime - import subprocess - import os --- -1.8.3.1 - diff --git a/0002-libhugetlbfs-2.16-makefile_cflags.patch b/0002-libhugetlbfs-2.16-makefile_cflags.patch deleted file mode 100644 index de95b12..0000000 --- a/0002-libhugetlbfs-2.16-makefile_cflags.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up libhugetlbfs-2.16/Makefile.orig libhugetlbfs-2.16/Makefile ---- libhugetlbfs-2.16/Makefile.orig 2014-03-03 12:50:43.408107252 +0100 -+++ libhugetlbfs-2.16/Makefile 2014-03-03 12:52:01.070230134 +0100 -@@ -29,7 +29,7 @@ INSTALL = install - - LDFLAGS += -Wl,-z,noexecstack -ldl - CFLAGS ?= -O2 -g --CFLAGS += -Wall -fPIC -+CFLAGS += -Wall -fPIC -fstack-protector-strong - CPPFLAGS += -D__LIBHUGETLBFS__ -DFORTIFY_SOURCE - - ARCH = $(shell uname -m | sed -e s/i.86/i386/) diff --git a/0003-fix-behavior-while-shrinking.patch b/0003-fix-behavior-while-shrinking.patch deleted file mode 100644 index 051c88d..0000000 --- a/0003-fix-behavior-while-shrinking.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 26c6b9b99d8f8d7897687a2192be4920a44c1eff Mon Sep 17 00:00:00 2001 -From: Guillaume Morin -Date: Tue, 1 Nov 2016 22:41:22 +0100 -Subject: [PATCH 16/28] fix behavior while shrinking - -Adjust mapsize as we're unmapping pages. Do not lie to glibc about -shrinking by less than a page. It's unnecessary because we are not -giving back any memory to the kernel, but also it forces us to zero -out this memory because morecore() assumes by default that "new" -memory is already zero'd. - -Signed-off-by: Guillaume Morin -Signed-off-by: Eric B Munson ---- - morecore.c | 37 +++++++++++++++++++++++++++---------- - 1 file changed, 27 insertions(+), 10 deletions(-) - -diff --git a/morecore.c b/morecore.c -index 62ad252..6563bbd 100644 ---- a/morecore.c -+++ b/morecore.c -@@ -178,20 +178,37 @@ static void *hugetlbfs_morecore(ptrdiff_t increment) - if (ret) { - WARNING("Unmapping failed while shrinking heap: " - "%s\n", strerror(errno)); -- } else if (!__hugetlb_opts.map_hugetlb && !using_default_pagesize){ -- -- /* -- * Now shrink the hugetlbfs file. -- */ -+ } else { - mapsize += delta; -- ret = ftruncate(heap_fd, mapsize); -- if (ret) { -- WARNING("Could not truncate hugetlbfs file to " -- "shrink heap: %s\n", strerror(errno)); -+ /* -+ * the glibc assumes by default that newly allocated -+ * memory by morecore() will be zeroed. It would be -+ * wasteful to do it for allocation so we only shrink -+ * the top by the size of a page. -+ */ -+ increment = heapbase - heaptop + mapsize; -+ -+ if (!__hugetlb_opts.map_hugetlb && !using_default_pagesize){ -+ -+ /* -+ * Now shrink the hugetlbfs file. -+ */ -+ ret = ftruncate(heap_fd, mapsize); -+ if (ret) { -+ WARNING("Could not truncate hugetlbfs file to " -+ "shrink heap: %s\n", strerror(errno)); -+ } - } - } - - } -+ else if (increment < 0) { -+ /* Don't shrink by less than a page to avoid having to zero -+ * the memory. There is no point in lying to glibc since -+ * we're not freeing any memory. -+ */ -+ increment = 0; -+ } - - /* heap is continuous */ - p = heaptop; -@@ -355,7 +372,7 @@ void hugetlbfs_setup_morecore(void) - /* Set some allocator options more appropriate for hugepages */ - - if (__hugetlb_opts.shrink_ok) -- mallopt(M_TRIM_THRESHOLD, hpage_size / 2); -+ mallopt(M_TRIM_THRESHOLD, hpage_size + hpage_size / 2); - else - mallopt(M_TRIM_THRESHOLD, -1); - mallopt(M_TOP_PAD, hpage_size / 2); --- -1.8.3.1 - diff --git a/0004-ld.hugetlbfs-pick-an-emulation-if-m-is-not-present.patch b/0004-ld.hugetlbfs-pick-an-emulation-if-m-is-not-present.patch deleted file mode 100644 index 4a14a3b..0000000 --- a/0004-ld.hugetlbfs-pick-an-emulation-if-m-is-not-present.patch +++ /dev/null @@ -1,42 +0,0 @@ -From a979e0b01a76f199974c76c9799b0210562147ec Mon Sep 17 00:00:00 2001 -From: Jan Stancek -Date: Thu, 2 Feb 2017 11:04:08 +0100 -Subject: [PATCH 17/28] ld.hugetlbfs: pick an emulation if -m is not present - -If -m is not passed on command line $EMU ends up empty -and as result HPAGE_SIZE and SLICE_SIZE are left uninitialized. - -Try environment variable LDEMULATION and if it's not defined -pick first from "Supported emulations" list of ld -V. - -Signed-off-by: Jan Stancek -Signed-off-by: Eric B Munson ---- - ld.hugetlbfs | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/ld.hugetlbfs b/ld.hugetlbfs -index 32bc6fb..2dda451 100755 ---- a/ld.hugetlbfs -+++ b/ld.hugetlbfs -@@ -81,6 +81,17 @@ if [ -n "$HTLB_LINK" ]; then - HTLBOPTS="-T${HUGETLB_LDSCRIPT_PATH}/${LDSCRIPT}" - fi - -+# if -m is not present on command line -+if [ -z "$EMU" ]; then -+ if [ -n "$LDEMULATION" ]; then -+ # try env. variable -+ EMU="$LDEMULATION" -+ else -+ # pick first supported -+ EMU="$(ld -V | sed -n '/Supported emulations/{n;p}' | tr -d ' ')" -+ fi -+fi -+ - MB=$((1024*1024)) - case "$EMU" in - elf32ppclinux|elf64ppc) HPAGE_SIZE=$((16*$MB)) SLICE_SIZE=$((256*$MB)) ;; --- -1.8.3.1 - diff --git a/0005-ld.hugetlbfs-support-512M-hugepages-on-aarch64.patch b/0005-ld.hugetlbfs-support-512M-hugepages-on-aarch64.patch deleted file mode 100644 index 7a18ad1..0000000 --- a/0005-ld.hugetlbfs-support-512M-hugepages-on-aarch64.patch +++ /dev/null @@ -1,44 +0,0 @@ -From ff12744922d0b13ef0373fb00ca057bb4424da23 Mon Sep 17 00:00:00 2001 -From: Jan Stancek -Date: Wed, 15 Feb 2017 14:10:19 +0100 -Subject: [PATCH 21/28] ld.hugetlbfs: support 512M hugepages on aarch64 - -aarch64 supports multiple hugepage sizes, if default is 512M, -then all linkhuge_rw tests segfault. This patch detects -default huge page size from /proc/meminfo output, rather than -using hardcoded value of 2M. - -Signed-off-by: Jan Stancek -Signed-off-by: Eric B Munson ---- - ld.hugetlbfs | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/ld.hugetlbfs b/ld.hugetlbfs -index 8ee917b..388f7b4 100755 ---- a/ld.hugetlbfs -+++ b/ld.hugetlbfs -@@ -109,7 +109,10 @@ elf32ppclinux|elf64ppc) HPAGE_SIZE=$((16*$MB)) SLICE_SIZE=$((256*$MB)) ;; - elf64lppc) HPAGE_SIZE=$((16*$MB)) SLICE_SIZE=$((256*$MB)) ;; - elf_i386|elf_x86_64) HPAGE_SIZE=$((4*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; - elf_s390|elf64_s390) HPAGE_SIZE=$((1*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; --armelf*_linux_eabi|aarch64elf*|aarch64linux*) HPAGE_SIZE=$((2*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; -+armelf*_linux_eabi|aarch64elf*|aarch64linux*) -+ hpage_kb=$(cat /proc/meminfo | grep Hugepagesize: | awk '{print $2}') -+ HPAGE_SIZE=$((hpage_kb * 1024)) -+ SLICE_SIZE=$HPAGE_SIZE ;; - esac - - if [ "$HTLB_ALIGN" == "slice" ]; then -@@ -119,7 +122,7 @@ if [ "$HTLB_ALIGN" == "slice" ]; then - # targeting the ARM platform one needs to explicitly set the text segment offset - # otherwise it will be NULL. - case "$EMU" in -- armelf*_linux_eabi) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;; -+ armelf*_linux_eabi|aarch64elf*|aarch64linux*) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;; - esac - fi - --- -1.8.3.1 - diff --git a/0006-libhugetlbfs-fix-tests-with-heapshrink-fail.patch b/0006-libhugetlbfs-fix-tests-with-heapshrink-fail.patch deleted file mode 100644 index 9f907f0..0000000 --- a/0006-libhugetlbfs-fix-tests-with-heapshrink-fail.patch +++ /dev/null @@ -1,65 +0,0 @@ -From e1c5a625a5d82aed84fdd5db0643fb865d21b5bf Mon Sep 17 00:00:00 2001 -From: lihongjiang -Date: Mon, 22 Apr 2019 22:11:55 +0800 -Subject: [PATCH] libhugetlbfs: fix tests with heapshrink fail - -reason:fix tests with heapshrink fail - -Signed-off-by: lihongjiang ---- - tests/heapshrink.c | 12 +++++++++--- - tests/run_tests.py | 2 +- - 2 files changed, 10 insertions(+), 4 deletions(-) - -diff --git a/tests/heapshrink.c b/tests/heapshrink.c -index 0644c78..bd2e62b 100644 ---- a/tests/heapshrink.c -+++ b/tests/heapshrink.c -@@ -34,7 +34,7 @@ - - int main(int argc, char **argv) - { -- int is_huge, have_env, shrink_ok, have_helper; -+ int is_huge, have_env, shrink_ok, have_helper, tcache_enabled; - unsigned long long mapping_size; - void *p; - -@@ -45,6 +45,8 @@ int main(int argc, char **argv) - p = getenv("LD_PRELOAD"); - have_helper = p != NULL && strstr(p, "heapshrink") != NULL; - -+ p=getenv("GLIBC_TUNABLES"); -+ tcache_enabled = p != NULL && strstr(p, "malloc.tcache_count=0"); - p = malloc(SIZE); - if (!p) { - if (shrink_ok && have_helper) { -@@ -68,7 +70,11 @@ int main(int argc, char **argv) - - free(p); - mapping_size = get_mapping_page_size(p+SIZE-1); -- if (shrink_ok && mapping_size > MIN_PAGE_SIZE) -- FAIL("Heap did not shrink"); -+ if (shrink_ok && mapping_size > MIN_PAGE_SIZE) { -+ if (tcache_enabled) -+ FAIL("Heap did not shrink"); -+ else -+ FAIL("Heap didn't shrink. Check malloc.tcache_count=0"); -+ } - PASS(); - } -diff --git a/tests/run_tests.py b/tests/run_tests.py -index 22e74c8..8cc6d43 100755 ---- a/tests/run_tests.py -+++ b/tests/run_tests.py -@@ -575,7 +575,7 @@ def functional_tests(): - HUGETLB_MORECORE="yes") - do_test("heapshrink", LD_PRELOAD="libheapshrink.so", HUGETLB_MORECORE="yes", - HUGETLB_MORECORE_SHRINK="yes") -- do_test("heapshrink", LD_PRELOAD="libhugetlbfs.so libheapshrink.so", -+ do_test("heapshrink", GLIBC_TUNABLES="glibc.malloc.tcache_count=0", LD_PRELOAD="libhugetlbfs.so libheapshrink.so", - HUGETLB_MORECORE="yes", HUGETLB_MORECORE_SHRINK="yes") - do_test("heap-overflow", HUGETLB_VERBOSE="1", HUGETLB_MORECORE="yes") - --- -1.8.3.1 - diff --git a/0007-libhugetlbfs-2.20-change-scripts-to-py3.patch b/0007-libhugetlbfs-2.20-change-scripts-to-py3.patch deleted file mode 100644 index 2c74c1b..0000000 --- a/0007-libhugetlbfs-2.20-change-scripts-to-py3.patch +++ /dev/null @@ -1,306 +0,0 @@ -From ea54bafb9552a561f7dc746f5dec33cca62419f7 Mon Sep 17 00:00:00 2001 -From: lihongjiang -Date: Tue, 25 Feb 2020 10:51:17 +0800 -Subject: [PATCH] change script from py2 to py3 - -diff --git a/huge_page_setup_helper.py b/huge_page_setup_helper.py -index 43c9916..a9ba2bf 100755 ---- a/huge_page_setup_helper.py -+++ b/huge_page_setup_helper.py -@@ -14,13 +14,13 @@ debug = False - - # must be executed under the root to operate - if os.geteuid() != 0: -- print "You must be root to setup hugepages!" -+ print("You must be root to setup hugepages!") - os._exit(1) - - # config files we need access to - sysctlConf = "/etc/sysctl.conf" - if not os.access(sysctlConf, os.W_OK): -- print "Cannot access %s" % sysctlConf -+ print("Cannot access %s" % sysctlConf) - if debug == False: - os._exit(1) - -@@ -41,7 +41,7 @@ for line in hugeadmexplain: - break - - if memTotal == 0: -- print "Your version of libhugetlbfs' hugeadm utility is too old!" -+ print("Your version of libhugetlbfs' hugeadm utility is too old!") - os._exit(1) - - -@@ -54,7 +54,7 @@ for line in poolList: - break - - if hugePageSize == 0: -- print "Aborting, cannot determine system huge page size!" -+ print("Aborting, cannot determine system huge page size!") - os._exit(1) - - # Get initial sysctl settings -@@ -83,22 +83,22 @@ for line in groupNames: - - - # dump system config as we see it before we start tweaking it --print "Current configuration:" --print " * Total System Memory......: %6d MB" % memTotal --print " * Shared Mem Max Mapping...: %6d MB" % (shmmax / (1024 * 1024)) --print " * System Huge Page Size....: %6d MB" % (hugePageSize / (1024 * 1024)) --print " * Number of Huge Pages.....: %6d" % hugePages --print " * Total size of Huge Pages.: %6d MB" % (hugePages * hugePageSize / (1024 * 1024)) --print " * Remaining System Memory..: %6d MB" % (memTotal - (hugePages * hugePageSize / (1024 * 1024))) --print " * Huge Page User Group.....: %s (%d)" % (hugeGIDName, hugeGID) --print -+print("Current configuration:") -+print(" * Total System Memory......: %6d MB" % memTotal) -+print(" * Shared Mem Max Mapping...: %6d MB" % (shmmax / (1024 * 1024))) -+print(" * System Huge Page Size....: %6d MB" % (hugePageSize / (1024 * 1024))) -+print(" * Number of Huge Pages.....: %6d" % hugePages) -+print(" * Total size of Huge Pages.: %6d MB" % (hugePages * hugePageSize / (1024 * 1024))) -+print(" * Remaining System Memory..: %6d MB" % (memTotal - (hugePages * hugePageSize / (1024 * 1024)))) -+print(" * Huge Page User Group.....: %s (%d)" % (hugeGIDName, hugeGID)) -+print() - - - # ask how memory they want to allocate for huge pages - userIn = None - while not userIn: - try: -- userIn = raw_input("How much memory would you like to allocate for huge pages? " -+ userIn = input("How much memory would you like to allocate for huge pages? " - "(input in MB, unless postfixed with GB): ") - if userIn[-2:] == "GB": - userHugePageReqMB = int(userIn[0:-2]) * 1024 -@@ -113,19 +113,19 @@ while not userIn: - # As a sanity safeguard, require at least 128M not be allocated to huge pages - if userHugePageReqMB > (memTotal - 128): - userIn = None -- print "Refusing to allocate %d, you must leave at least 128MB for the system" % userHugePageReqMB -+ print("Refusing to allocate %d, you must leave at least 128MB for the system" % userHugePageReqMB) - elif userHugePageReqMB < (hugePageSize / (1024 * 1024)): - userIn = None -- print "Sorry, allocation must be at least a page's worth!" -+ print("Sorry, allocation must be at least a page's worth!") - else: - break - except ValueError: - userIn = None -- print "Input must be an integer, please try again!" -+ print("Input must be an integer, please try again!") - userHugePageReqKB = userHugePageReqMB * 1024 - userHugePagesReq = userHugePageReqKB / (hugePageSize / 1024) --print "Okay, we'll try to allocate %d MB for huge pages..." % userHugePageReqMB --print -+print("Okay, we'll try to allocate %d MB for huge pages..." % userHugePageReqMB) -+print() - - - # some basic user input validation -@@ -134,24 +134,24 @@ inputIsValid = False - # ask for the name of the group allowed access to huge pages - while inputIsValid == False: - foundbad = False -- userGroupReq = raw_input("What group should have access to the huge pages?" -+ userGroupReq = input("What group should have access to the huge pages?" - "(The group will be created, if need be) [hugepages]: ") - if userGroupReq is '': - userGroupReq = 'hugepages' - if userGroupReq[0].isdigit() or userGroupReq[0] == "-": - foundbad = True -- print "Group names cannot start with a number or dash, please try again!" -+ print("Group names cannot start with a number or dash, please try again!") - for char in badchars: - if char in userGroupReq: - foundbad = True -- print "Illegal characters in group name, please try again!" -+ print("Illegal characters in group name, please try again!") - break - if len(userGroupReq) > 16: - foundbad = True -- print "Group names can't be more than 16 characaters, please try again!" -+ print("Group names can't be more than 16 characaters, please try again!") - if foundbad == False: - inputIsValid = True --print "Okay, we'll give group %s access to the huge pages" % userGroupReq -+print("Okay, we'll give group %s access to the huge pages" % userGroupReq) - - - # see if group already exists, use it if it does, if not, create it -@@ -163,20 +163,20 @@ for line in groupNames: - break - - if userGIDReq > -1: -- print "Group %s (gid %d) already exists, we'll use it" % (userGroupReq, userGIDReq) -+ print("Group %s (gid %d) already exists, we'll use it" % (userGroupReq, userGIDReq)) - else: - if debug == False: - os.popen("/usr/sbin/groupadd %s" % userGroupReq) - else: -- print "/usr/sbin/groupadd %s" % userGroupReq -+ print("/usr/sbin/groupadd %s" % userGroupReq) - groupNames = os.popen("/usr/bin/getent group %s" % userGroupReq).readlines() - for line in groupNames: - curGroupName = line.split(":")[0] - if curGroupName == userGroupReq: - userGIDReq = int(line.split(":")[2]) - break -- print "Created group %s (gid %d) for huge page use" % (userGroupReq, userGIDReq) --print -+ print("Created group %s (gid %d) for huge page use" % (userGroupReq, userGIDReq)) -+print() - - - # basic user input validation, take 2 -@@ -186,20 +186,20 @@ inputIsValid = False - # ask for user(s) that should be in the huge page access group - while inputIsValid == False: - foundbad = False -- userUsersReq = raw_input("What user(s) should have access to the huge pages (space-delimited list, users created as needed)? ") -+ userUsersReq = input("What user(s) should have access to the huge pages (space-delimited list, users created as needed)? ") - for char in badchars: - if char in userUsersReq: - foundbad = True -- print "Illegal characters in user name(s) or invalid list format, please try again!" -+ print("Illegal characters in user name(s) or invalid list format, please try again!") - break - for n in userUsersReq.split(): - if len(n) > 32: - foundbad = True -- print "User names can't be more than 32 characaters, please try again!" -+ print("User names can't be more than 32 characaters, please try again!") - break - if n[0] == "-": - foundbad = True -- print "User names cannot start with a dash, please try again!" -+ print("User names cannot start with a dash, please try again!") - break - if foundbad == False: - inputIsValid = True -@@ -211,24 +211,24 @@ for hugeUser in hugePageUserList: - for line in curUserList: - curUser = line.split(":")[0] - if curUser == hugeUser: -- print "Adding user %s to huge page group" % hugeUser -+ print("Adding user %s to huge page group" % hugeUser) - userExists = True - if debug == False: - os.popen("/usr/sbin/usermod -a -G %s %s" % (userGroupReq, hugeUser)) - else: -- print "/usr/sbin/usermod -a -G %s %s" % (userGroupReq, hugeUser) -+ print("/usr/sbin/usermod -a -G %s %s" % (userGroupReq, hugeUser)) - if userExists == True: - break - if userExists == False: -- print "Creating user %s with membership in huge page group" % hugeUser -+ print("Creating user %s with membership in huge page group" % hugeUser) - if debug == False: - if hugeUser == userGroupReq: - os.popen("/usr/sbin/useradd %s -g %s" % (hugeUser, userGroupReq)) - else: - os.popen("/usr/sbin/useradd %s -G %s" % (hugeUser, userGroupReq)) - else: -- print "/usr/sbin/useradd %s -G %s" % (hugeUser, userGroupReq) --print -+ print("/usr/sbin/useradd %s -G %s" % (hugeUser, userGroupReq)) -+print() - - - # set values for the current running environment -@@ -238,11 +238,11 @@ if debug == False: - os.popen("/usr/bin/hugeadm --set-shm-group %d" % userGIDReq) - os.popen("/usr/bin/hugeadm --set-recommended-shmmax") - else: -- print "/usr/bin/hugeadm --pool-pages-min DEFAULT:%sM" % userHugePageReqMB -- print "/usr/bin/hugeadm --pool-pages-max DEFAULT:%sM" % userHugePageReqMB -- print "/usr/bin/hugeadm --set-shm-group %d" % userGIDReq -- print "/usr/bin/hugeadm --set-recommended-shmmax" -- print -+ print("/usr/bin/hugeadm --pool-pages-min DEFAULT:%sM" % userHugePageReqMB) -+ print("/usr/bin/hugeadm --pool-pages-max DEFAULT:%sM" % userHugePageReqMB) -+ print("/usr/bin/hugeadm --set-shm-group %d" % userGIDReq) -+ print("/usr/bin/hugeadm --set-recommended-shmmax") -+ print() - - # figure out what that shmmax value we just set was - hugeadmexplain = os.popen("/usr/bin/hugeadm --explain 2>/dev/null").readlines() -@@ -258,7 +258,7 @@ if debug == False: - try: - sysctlConfLines = open(sysctlConf).readlines() - os.rename(sysctlConf, sysctlConf + ".backup") -- print("Saved original %s as %s.backup" % (sysctlConf, sysctlConf)) -+ print(("Saved original %s as %s.backup" % (sysctlConf, sysctlConf))) - except: - pass - -@@ -279,11 +279,11 @@ if debug == False: - fd.close() - - else: -- print "Add to %s:" % sysctlConf -- print "kernel.shmmax = %d" % shmmax -- print "vm.nr_hugepages = %d" % userHugePagesReq -- print "vm.hugetlb_shm_group = %d" % userGIDReq -- print -+ print("Add to %s:" % sysctlConf) -+ print("kernel.shmmax = %d" % shmmax) -+ print("vm.nr_hugepages = %d" % userHugePagesReq) -+ print("vm.hugetlb_shm_group = %d" % userGIDReq) -+ print() - - - # write out limits.conf changes to persist across reboot -@@ -293,7 +293,7 @@ if debug == False: - try: - limitsConfLines = open(limitsConf).readlines() - os.rename(limitsConf, limitsConf + ".backup") -- print("Saved original %s as %s.backup" % (limitsConf, limitsConf)) -+ print(("Saved original %s as %s.backup" % (limitsConf, limitsConf))) - except: - pass - -@@ -319,25 +319,25 @@ if debug == False: - fd.close() - - else: -- print "Add to %s:" % limitsConf -+ print("Add to %s:" % limitsConf) - for hugeUser in hugePageUserList: -- print "%s soft memlock %d" % (hugeUser, userHugePageReqKB) -- print "%s hard memlock %d" % (hugeUser, userHugePageReqKB) -+ print("%s soft memlock %d" % (hugeUser, userHugePageReqKB)) -+ print("%s hard memlock %d" % (hugeUser, userHugePageReqKB)) - - - # dump the final configuration of things now that we're done tweaking --print --print "Final configuration:" --print " * Total System Memory......: %6d MB" % memTotal -+print() -+print("Final configuration:") -+print(" * Total System Memory......: %6d MB" % memTotal) - if debug == False: -- print " * Shared Mem Max Mapping...: %6d MB" % (shmmax / (1024 * 1024)) -+ print(" * Shared Mem Max Mapping...: %6d MB" % (shmmax / (1024 * 1024))) - else: - # This should be what we *would* have set it to, had we actually run hugeadm --set-recommended-shmmax -- print " * Shared Mem Max Mapping...: %6d MB" % (userHugePagesReq * hugePageSize / (1024 * 1024)) --print " * System Huge Page Size....: %6d MB" % (hugePageSize / (1024 * 1024)) --print " * Available Huge Pages.....: %6d" % userHugePagesReq --print " * Total size of Huge Pages.: %6d MB" % (userHugePagesReq * hugePageSize / (1024 * 1024)) --print " * Remaining System Memory..: %6d MB" % (memTotal - userHugePageReqMB) --print " * Huge Page User Group.....: %s (%d)" % (userGroupReq, userGIDReq) --print -+ print(" * Shared Mem Max Mapping...: %6d MB" % (userHugePagesReq * hugePageSize / (1024 * 1024))) -+print(" * System Huge Page Size....: %6d MB" % (hugePageSize / (1024 * 1024))) -+print(" * Available Huge Pages.....: %6d" % userHugePagesReq) -+print(" * Total size of Huge Pages.: %6d MB" % (userHugePagesReq * hugePageSize / (1024 * 1024))) -+print(" * Remaining System Memory..: %6d MB" % (memTotal - userHugePageReqMB)) -+print(" * Huge Page User Group.....: %s (%d)" % (userGroupReq, userGIDReq)) -+print() - --- -1.8.3.1 - diff --git a/libhugetlbfs-2.20.tar.gz b/libhugetlbfs-2.20.tar.gz deleted file mode 100644 index 2f3ee8792fdd06a60b9c08e04f32171917b894ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194560 zcmV(-K-|9{iwFRJ4hmiX1LQnuQyWRL{tCaMMiUGYmXN^L*a9{Lw6UIb5R&jQ9!E!` zE=m2|ho%oev+&!_-0%nKZh>b_Y7*Um(m6e&5SCz)LE*H_9hxX+xXzcIqx0=tM z{HFy!Z{ED3-|&<;&KqXRP&P z9NhEs|6Kpgou~WRWIK$pi-7xV=6i0)xNEYR=d&oV+&M$TVoPJr19svqSH3l0gsgf} zWBaYvuXWZv?z7}a5__5-No=yP0=D$MxoVmWYs2Slw(=r2HC*O%(+Wc0 zx{N~3tdJS5*@R6vo@vciF)^5kTobk$E;tLh?*z=7(H}h?pa{+e7wn9?+&64?9$nhj zl=ZABcLUChAjjDf=Ys_|+2x98yhql?k~Q|;gQbkn^4vD#7R>wXiu(cl&GvWq)Vhk8 zT&2!{X(PmK`OI4)b`AEjVzv<`1a=>g*}qi*iJVPlxwMIew*+x6fNv1+wPoAvl7s#5 zS!CCQ)d_B&TfI&)BQ9zH=D$sjIU(>Jh0|2h#zF* z7(YOiE`uq{#dBeVo*yvVnt_i(1Ll4m;fyHs95}&93OtjTL&tP!1fZZ`6@=UYZMrjS z9{D6g^fz#te2ynSKqANkd1BacH$+l7ZWi2L3Y9KB&!&YO&`FpjybGAHub(Y*b+*h!NQ_+j6Wh$c{N~$lWkI7NNY%?AY92W(StnIf&WR z4Q(7sbFm7VkPqbO<7l{A@}M|OLMaXh*T%9qdTm&tSkUA%%jHam6Q+-c7o!u6HFwA> zKq>~lTBjogvVCBa1e_uH@t9TjAd{}eBYiot^YJ(tJX3>x7>q|p+WBxa(Jv<59;-+@ zt>k8_Hn>&r#Y-PXZ|cZ2m}8yo?(Wteb3}jN+%P@%&qp5U`w4A;hp9p!yYvFC6JPA; zkkN<7@PZUJW=k-#iRW>6liwf=#LSQ)yKA=9&~yRW><$bX{=A)N zc6dJN4hK~j55S86Y^}I)w$<2w1)0fK@Vi^7vlMJh=43dSRB4EnNG?a9Qc>uMEe(G`D)c^M$=^y?vb^pO1zoL|_cq5M-v}^ri3+;={$6cHTMD z#(IDFsdL=Z6fmB^E2kN|K0Wlg5$Z;uJKmLXY4a?des}PGq-h_IzfQDqjs|#W9g|1> z$K?tHWb(8%$XB^-J~~@}9{D z(#3Q3Vjuq5+y52*-G_(~SbuVFRs|ENB?bb?Qol3Nd)fd=C$zP`J{e9r;8yzFnRuaL zze|`If9{;?C~Q_4gX6?hAU`XSaav)=0G;0F&e!qA24fY&zBX3rZFWvSb;labIfi*< z1t~2Lv`^ZIrd;qCeljtEJaVjS1GFBTPAk!Inh=`ZU$;AD z*l0)(0l+;Nf>hOJ)5u58S$ryFX0!Ax1jUsSLYVy!wG0Uy%|n9UH4!LS@~JhWY6H_J zNrH6QaInY`sUBgIJFPg89a@;I8X=@^;B~QTGtB>uf)LAQOqwYP!viO?=oEIc-juch z>D~-Vipb|>TS@phKytUI+WXE$Z*uhR+w%i=>|OFz1L!S1s32BIX$T{?&Jtwkew1lXP9zH6@ z&66LMXt`Wtxd9IwP?LL(!(9`^pHDQhq{ke5MGk~YM3$n#t_(XOzX64!??KUTT*0P| zOUt&X6OtmBJ{M3g!sbBS53ne+8sLoB5r3}dBJKB#8z}Gs(Ly2Tw)BF)!ZU)p4Zx!U zV(cA?E*DvW^%|5NK{aHVxAf699DWpYRLG<5^PvP#$21*|#{%pIGzC0Ts}0a1;8xOm z1b>EUHqfItupIn$NY?V5_>u9nX1y44IHvIpQBKB z*(skH5Ml@~y=jyM(#UTBvMDW)1w^80fZkVa+L*(UzC*ZVBou5UP|75tzb|EoJq z?GJV&DFSQ9D`twV)P)Ryc^{-t{i|6hTd{K2`4f%ZP7%cmEM?S$oxhT;B;3iQBW~HG zxRr}M$c)Gp8-RP6zbU4U_6Rv#BGsNJ>FHbpooP&xIm=|-0Ncw#~asch+l2GDJ$ zk|Ux)fkV0wo0mBcVKI1Mup1~FQleL0QuLKF0^IwO8+L$ye#<`XR!_I0M z(Tw8(0T8!=%mJ6Su}Y4K%-D>$uZmd`xX8Twim70JRHJ|xW66~kv zU5CGFKyXKf&atE-SpG+3L6F9*G+1z~lOT2*kav-muYt>SFv5r(`%&c*uak=f6ZEF; zVbXZU4@~9p7Rs0+QeIsA2DW4oYiHIK865a`|H=X>%h-nf*(knj6G~1kK~5d~E^rsB zR<}(1Qh85)UD-rr2h=<~s4)3W{tOQ$U#kW(ed#WqwwG zDP~C-5R8vHg}ThJjFBZXIHIe7n3=(HP>;(&F&DY=>Vf*+)Bwk0r_;gG=>%tJq-W(} zjOVlc;6wIF8yyeF-N{#7X7KGzYLY76vAX}J+FaiOp;BqfUIhpyTI$@rvV6}40ftr4 zUIiysXX>L(T@36*r}SE5Ft#BZ7L~2waCgCPY;;!ZXAXTR-e~U7!Et3e9k`VOi{KD4Lt#df`==}onFWmPjIR@|Q zO{b9`;AS^4F6eY0sYhsQ)iq00GZtBsE8a=FP$p)%R#?Rm5|S_oP$9Agzrd8{LZubi z=GBEQYUDXkrZ8Cpf#glr2tAAD+Up3B)E**}SUy;GfqQAoRO$#NgT^7633S{8k`~jX z?|4peDCXMo9wwPSU@dlgo6rKwc>7k+*w99!;Rwvxd?)#!A~XuoQhmb(H{EKyeT&+s zE0&lBEwjOIK;YV!?nHmz>Gm#0!k+H%W(6EFFR+=F$aA(=WcKio?X_BxyU(4`pgRC_ zOn4(#BQ8aWFTqHR-)JZfHVg7k2{Ugw5a&<@S=%AlZ!f+p+2`mT#!@W$rJP|v2wKS` zANUGfc~s@qo$TBTxdP}GHZC)ZA>uuYC^N1z1%0P(x5bqt9z{IkqU;wbM4Tm1ZH>45 z!r8m_O57u>26S&YIMdIE!`{Y5b$hwZ4i4C_wc@Pa>y9S?5)a&N+uLPuc-PT6{hth^ zQx4hrQh@B2Lu&nVU@#51+)iC|(fC-K=p*f9*zaqDQ|(mGTq(icew6Mlk0tJtP!>09 z;gw=IuMyI&?qI^4_ zJH&mkb{1Fqs1%O_Vv!=;sM9CVG^Ae&d9IDdXiaIzqCPQ30B7grCfUJTneK0>*?8a< zwowMx`2_AO17{Rg6IY!ZC<~`_#gmcNnP@RwHHCG%eUe{SLSKxv(HfMCH7I0I3MY#) zUx(5g9(Q`>IA?hrJjZz7w1%xtK{CB=zbhqUmr8~JNEsW7n!vf;9v4?f*zRC>s*Ur& z-NMq^m-AkyJAjpW`RSs&Lt-r~Wlh{Isw>NCGA2x*1UA0I%m5c0m;jb{ni){HunW54 zBPKtVGAXVADJ4?0XhUL2+{l3zEI)Ozm;=oiKRRLbsN; zQ-Dbj$5|>HlK5T3riSphcr)MIBEf>NFF#G)5Cc8@f>dEaG{yD^v!2L7WqAk*sg+0p zWF8gCt0|9pmmw6+Vp&EvmXxWKW=xP1{1HH=td;`GaaJJsZheQuKna|3?YNfNYXxlU z*UW!1U8{@%8gq|6B*sqUP$N;?w$do}`^BhiNsDV;$PHjsQNbZAkW!(To}Ba4OriImA)u}OpQB&sSIo>oM5xgs;NOM&}Hwr#{R)7I~Dd$_Q&qfETsBH zL5jjp*@Sqp#^67H)s~r_X@thN+=C0WkOCdH22`dswrswLp^cDqg|1`{kE zgh_@eUNPx__bqv;LHTB!BPJmA)N2mR61N&#Ca7B$d5U&BHjOl9rB5xfb83mWcp`ff8aA+7g-S)U$0q4Rvfp zU2!Q=nYUu!iR6iWLz+*X3m|U##XucjN7nJSQHlibC9nlQxajrj+0G%Y3yJ`m94b=z z=2_vTTdQ!QvGIhZ(K4bJnnE^MB=0hI0yRERgq5I@fL(|Jg&wpMMajF^lt{13jHOHj zRQd0uP3L_VTLoga+(_}?ddm2AmOj6-ya*39ib1+Oo4fOHAuIRymJg_)JC=UTMFMkK zlZP-88kbbHOWhn|pF$j`YVsHitjmup;hzMkFsc$XLeWlRoFY<*XI%nATLIn-ZHZFG z=Y|P-kTq(W6-oc0Y8514i^iBk&6=uoz6H_N;*HT?Y1c1{W^w;`ud^46i8GKWBsnBF zo1DwJ5|-{)l}>)CW{+Dfbv)6R)$^~%YJyed9QHH?ONL-lEjhFJuC}h8s@1T_RkgS< z7Svwo!{;(&@CQQDxQ;qSzx*QYj2)%S7!{@d!Y#*^7<-FYK95m}G@J~o5wUl5P-9|hl_tM@>7%GsL*_E`LyExqv z^D0deYm&@#5NRPtP-u(a;n47@c@zu;&`uBlo)nI>f> z>Iz=d3(1p{ER|BF6p~^)If?DO0<=yD34D6>vropKmPqH!OB90;A zij|42)5Wo6%JH}xL_VD(`CYQef}(-0JKfOoNg?1w@BxoF zAOOw83n57A=zB5r03UBA1ULBnQz2PAAd1Ns)ljhb9X`awX9DlUdBd;IBpVK5aL7yO z9SO)w~Wg|Kz(m)F^LbDMk| zerZGM8Xzg4?g*6a-&@;lWe2g}O1MtjWmb17dcs;1#pbq%vF6S5=dsyKFI&wp3V#S5 zYj_AT0L8BVVOG+dWXy-^^97&&(5)H7F3k5;pYI*xEiyU_)3=4+xb`yUg1TF8WL&%yMH(M~MFTjY(H*%a+GKPG^LFq%LPgUq6 zGJ^*)fQ$(cBqW4ubt$L|xs#6K8=%wJGeG3A@S!kaGKsmHj#q$JPZX_-wlIu_ykQ9y9iYEqQS9X<=B?{0|P?>Do+b&q>2WK07+H* z3mq?fIY6Dlb_x%-Epg?p?k$gv=ar<+$<)UiiPM?|s1KkZW!KKlW86I?@#bf+>|2jV zH;9Ky3;9_v=s(1BkL);lE6By-8RXnBvlS4CNEEQ5B212ZqFX=_j!eBpDAlskb1bn^ zg_l)eSneg(SjvLzIFzn?|AKefob10VHNgP!HV^a6y zeazu~JWjn|5!Hx_m_i1auBvQ7zJiy+G4TH-k;)q$f8jv{P+7_QDm5z4_BY9NJTAWT zT^J^nndxD9g;JL{Dv!=s;+#i1ia7BRe~ZwF&uuUSQc{_{ap?=MDZWNyuP}`l;-vp~ z2mW7TR3W*x8z)_{Ux>QkO~pjqnS{ygX*r=cme^jNS@`Y$_z@<(O_s4Qrm?;SxgjK= zqAdKCL`jkW%1kVsivP%Us|`ImVV9TLZqBZ-S` z>|o=w7-XBX++Kj=)Tu;u(3Bzq}>>4rte){U0waI zs*k;zds}`rHn(%MfE z-Bf^>)+TaCE`V4l*pcYQ!U)(o94nkgiV>{-s4*XOTUe9kO=^RYWZAf<+gemrt*jz5 zWB=9yUQu?IkZ#f-Et(XT@~o^5r`JRN^39$-Y#KuKTd1YE3$m~{Oywj?Jnnez!{TN&_}+@Nrx zknwW;2vrN=06A*tbV^<)19KkH2s`nmqBMG4cVW>EP=`{%C7?nXK7CoE?`6e+q=NRQ(OF37`YJ2xSdNq?vmHB$jqs~Qh2kig zA3#NTR>QRDqM>5kAvm|^i{#fp9dn&~)DRGQfw%0v{AIvLT2tPVA|EfVs*_b5Y>oCQ zM-W$10yKFJ!zhk}P9q#rGWj69b)P)Dp=qsg#YOEhRzeLpjy6c;$rf^C6XIBEAm_Ei zY(uo;*dQu&#}S@BCsEND9iU8-Rjrvph5Zr% z*5h%{v!g_f)qiwci7#n9ns&6(+TGc2zI^+NIvo(zmD=FgyG~YxcJ(<14r)JV3)H6> z*yzv#Lrhr~ifYi0aX3zU2`md^^TX~rG)l?%DjY+g7u#^WX=jbvxNe{Ik;w!U z-bIZ>#dSO5p)R_3p+JgPf1)!QjYZFKP5!b?>o~hWKq;STvtw0LU90GKAqE3fs#BK5 z{RAB*)zo8q&#|D#maY?^rf$23`1`IlBiSQUUcCJY5vCHRW3_5WIVHF{p=)qK?Crch zLX_)K^SF8R16k25WG0H#UYR+1U}yM&TIGs^1?5)G<|+f=l+lPx)^uaWS4p-xVXvRS z8*CMoLVP_T=a3AlKz@wP4Ur*_;Dky_H-rh{CDv)!zL0w^6;c80XMvva_BJ_9qkm0M zv5z@01DV~~I#R_;8JqKvyCOq#^3!4S7+Fc1ntBR*Km!vLjMR6thUy{y_sl4Aa!cY5 zYpqpo6=zpu(Yhj@S(dX}epT*TK>e}^oAob?)(k3BB8jd!&r&lDq6+*wU_AvD5SX&a zzR9aFXWNu7#X{t0=k=`%J4wXwwy>wI+}XDSicfx9K>{5s^nSq`J=1++wXY{q#R>2jfUF_I4mGKg?$s1x*HfG#+2yN|lvxE)7> z_BD%|nR?x7ps+4*Co~BX_mVgb;h-JW#NkTGU|0dq8;oo>{IOwkAp-A0tFK`~{xyk5 zY>J+lZ$pPu76@(azN$Aj^K2t~OK|s%%9O2LfZ(LE0ugtt9kge zdLY*%rD~J{cFwhwbM)-Q;5b4txzUG2Za%V}e!Dw!k}}I(YBTKLOKFY@*~MstpLdZ} z664K=?+-@?6un(}?x;rY;o_@8IX~N$7uo)1CXXPEUV>-&ZN~cTx!3DWva6@c+pp%R z*$swG)TZq$7LNzT@W7#1ho@d~qr&y4+?-VVQXw=k%IoCRA?fw__})Xo9NJ1SVPF*P zaj${Hwyp<^3s)i)H_YlQ>)apqZiG*p8A>BkksZsf<)ZCHk44$OGK0u6b$sQep3eR^ zh52g-lpa5n^BkU@5O_2>t>f7USgNxRq!A5`-vqA;-{%oI@e?(uW%&YXGESYuQ9~~r z5th>{BHM*DqHTpUqCfVlkg@Q%l?aoA-KwEBd*mb)fgio=8r2z(+3OVL?T6zwYACW5 zU`sTIGTx>fdwJt51SDkFEfRSy$K`y=zAdulidW_sbt%_1ad?lFl{w6kqiMsOI6s2N z+#iegXuXO|DcmXaxLb zN@qIH%{S$)+3#h)QRG-e+&c)8NVLG}Ji;0~?4|mi=p9%3LH55sg@wkACAZo1BO0X8#K-k$G zG@sPf=D133i9$V$j2bcrFMH2k+EEH?g6+B2(FR^}P@y7|QHNG3cV<%58M+^Z0=}}> z?)dZDZ`D^m)#?jxpfeu_SH;8=E@IZ!@Rsoa3dd+28eP?`4uyX8#+;ur%ylNYzA6CY z@y(8hyVpzE0-H(?slt3{xA=4%$a4Cd^B`K9P?z;~R59AtmH`7z0kt3jI9Li#x zdLfT}Si*r^tXa43UM?K1qFngAPS@~)%pBTPj_-ZPl`L22g`DwKg$F-84Vkfm4m^Hl z@Kf$%FXuCT%fX(fY`O=Q81%5`u2HAJP-a3-rm7iX6`ZCUsK;kt&l{xE>254_qRXY< zqEP}%dc(rxY!6uZUnBbTvAaZ?q_D&<1h}JR!E@V3qFvdEXN<=wYuT>RADhUx2$*?Gc03k#0;|x&TvM{<)*R#>VLOOT^{vS zy?c`dYlgMUtt0;94=EIRyD??QyA@rbJFVSrW?tQ`)%6&d-CfPdOQIWZrMMkZslcc= zw1So0;k$RKx@z87{oSnTown zpU8D0=ObN_$j#jen%fbYP>$o;=O~MJ!w_l#nP%iwNqyVcuW7)z*AjTPulSDC)vRcb z6EX-Q8-3VhvsppA4IQ=_U$qYYDPkA#%u_gcUFfr*&W-0m2N~$C@7X)DsY|{vmdi0D zxXs?=mN9LET9~p$-FRmJLLGoiKZ)qqj9qEkzLedWZr%dF32bgp{}gUV-sm`cl9__# z{18mrm`uK68Faj=*^=h}1 zHT@MBuzY=qh6m)%NtBi(noxNyj&&nSOa8&GkSGn~*$WgB_AZn2cq%vcHMh@>>|L?ymTNxhVX?*e>>#t|{)tS7a#_?Mc zIVsPc&EEfj?EkdcFK(6HCX_Eru5v|>FAS14UWO4JL}x@jHC7_(pDH{<;KPRuYCb)% z%lqHmM^$V7IhTV=QJagA`)va6U157TI`dg#n>N583Gdqx$kpuEa`VSVrlsUD8S0Z} z0sq4qnC5Mp@fnSaoAU+dBpWCY_+@mVz=9HV^{TFHS)6f0*%6U_^oTfMEbK-{7qj3R zs=xtqaFH-;j*~=>qme*rZmG->O)g+Q!h>R7I9bph5QLnVmH01RCZpf@+!YJY080ph zn|szuM)6tx1wvV}kdqLqq@f``pb6+bMiv;$ZGzZr5-`)SB_^3{hm1TyW4pNSiWB7L z$xUxpKsL8XBW`wmFXB}QtobX4HM(1@%S;(dtqpGYW}T4*a;hkEO3BAkQ|I%0=?fVG z`YPn|{9fmUwTJdv=yL9wA+K3`pee$xOS$mN6uu}C1Qso_*rb>V!G31c&Tbx%yV9s- zlle2|EXQ}Sm&7{Gwk^R~kX9=A5Be3I<;|0*GLHzu@pPmb=Lr2rc_WeLCWDIs`i?Lf z2Y)DLZ{d3RqC%N*+c}q^kdi?Hd6=80Ux`RuF=C!LA*4b*0nepT1O|IEw;**ft8q@t z*(yN3{LmW6dW-R;A-nP^sPo^ZDdk0n?+c5@n0Z(j7fsD$W{3mMiyVlyMo^IY3#Gqj zJ-HTnY}MXbx!=?T!>uX>FvNO6fw(wMNQALpaJ+ckI+s-Zpl(!o78s0V>z|*E8i7XMzsk(dQ#OK&$>iw+{Cuu4 zR;CA;z%C$_oXr>=;^20K$SzA<>sRe+FAEyu-!jqKK<+~^MT>$xruqh){QS`=8qey6 zsSeP=YEJ^*yXS$bN4a?tp?2SMq4~wF{%^G?y<_*mv^MGPVD>l_7FRrUPM{hA=O#LE|`fwlK1BK zAkp`(B^n(9EvXP$BZQnJ#4KA(&;?975hIMThMkI6DAJllS5yE~mpvT#TUFR@CnI!M zh(T2rj5s@Gb^Y7rqpa*SzIe#qQql`8;w?}=a`@cBG(wvqQT>r`nQYl#k+kri+?9=^ zf1QJ!V#8Yfn>hQwi4>1FE^r_$n!#_s4ai5kb+p?;Uob7i$F!hq;Q$4OA?z%`xctw{ zgsw9aJ5drgknO{*S^hKaI@~%Tc2U5;4BmJq=c$1Sn*a}G$yv8aVnZf!qbe2IyIh%VPJ{;M`vwDIzM=TKQ0Z@IT>m?KM&KEMP->IvG z_uYBta#8DMP?eOw{C_|J5n($3#^hiIeSl<|DM84alfno;=fgS^_LOXHxFsi_Q2ES^5_`$X zNsDG?J_^I+`TRc*Kzio+;TS31(eQ!6M9ec2|lgO$|OznBFMxrpPrKBlnWLnOw6J*IHb(@u0c zIje|f&Pa#!zzh9Lf-DHXB0^|{Q$!YI^%WOq&2dp%WQxUtG)mC44AYtwH}C=uWh6ev z%6-2ymTnK*G>) z=nUtx04S5X!>RqK=PUWta&Jb7(SaX`!R%_rM4}f`wH~1)-aX&ji9=HV43Y`TBRErI z6($8ZCaM-RI3-rkAGe$x!;H;HNT~OMVXzqt6JFPylaUUJV1pEr*_{gGT`-%n&b1b` z(PiGIt(hqAGjaoiiW$>|=?X5;vo(ZxUik&hBBvhNx%iXk;51}huoBWv*=d9c!VP~@2Q|PSxBxz@I z>w|51UPrt(dHs_p=k=dCLt0)a%GsGR<;?09DUWVcB1zksBK6tWEmJ?6QK)+gGlc(@ ztEoY>9`an=;cm!3Z5B(@s8toerKcKb=z_9K`Kwuto?hciSdF5CavNT-8ndWb{VAF) z|L9<-K+X%(x$(5~m1WPjDonlWA-GcrR06G=r=Ks$%89-*CVhS$I&2HJa}uzQgWeN z@;nl)aD5d!2{(M0qyCb^mK*|*^}kG*=!RGz;m(dw-eW$0t{1hQ&#^_Tym0d~r&22} z8a@0JVbL5(v)M#jU!GOYoF<>u8G8}k)hqS>@Y+$K1rdvj*f=tXZ@!slvKed%{@Ixnv) zP)b(EIEJM_-W_X-WzmA{B2doCFVbj10VGq-%1*+lm)Q{@^O>!{$f9UXxykdzkbqZK z3`vQtJDmMma{!_)uIM(I5&HSeGi|NcJz@F9#&U6s z3ItSB=;n{!;CkC_#$uLjkvtpstecMoKgbYk;rL(9?Yqf%_v35nl5K&zS9|7y)7r6w zxn?vbQ+Q#!vgk&4zrR5%^cBPGG07J0x8rrL9j>r&lZH_GkDnd$?SQ`>|8Vl7$~I0m zMGqLy@P}NQ7NKdpbSqvu*(ljpioiSQz1$(=hB)XL>@O-+Rh@5`+2j$?DWshBoh7+y z&Qer(k^1wG;J^NQpI&@wwBPmB#_IA?)a$N2>J5kOM*EKHSccD&Cr{`ve6oM(`^xIt z!{wDHtE;P!Ze{J^!?piXtJIXcY)QcfSYtR+>c7yaby~Vv@4wJbe*V+zv`z!xN*{i| z+&KRDI&gy5)*hA4|C5!~%=|xIee~qN)bhtyJ^S-FpMQ4r?ot6TQ4VmeJ#eE>Q$kQ9 zJ*djsBXt^su&*fRRx-REQM{L(mwWJQG;FBV<&{-@w>cS~C!gEALCeTO0YMTVrYbss8}*35UGi*=XV3Xr*>NdI^QKOXBJ zkKxB!u#jH17nTD!@?kNLK5%o&uYdOmoUX~wZm)6v5i~Y^{lj8keVkeUPaZyeJYWBx z<5Rf)n_+rQZh4Zf+KmU3_tw*%zve4jRaouIkL&Qyn%WL8zG*G%?5~rPffzRSC!J=8|kVYte7Uo`bMh1R;MLB_J_x_+)xnY4goDM= z$-OVF)`1a`V;JDdP>Ntw@Kw}|O$C~(VKY{V=MB^~-rMmw=!9)vYnf$Z@tBm4H zXkw_^Kx{K7lWLYaLNc@_X!h6{)@Nw=F-XQWMVwu`DEFori?K6Z!vK1XntHqfslvfU z4`$*R^1q6^Q1+`{l8kEVWs;6D>E5PVUR_yPuCD+aQ*Vzqc~e-j(~G`FbSKF>1m60i zCXnJx#S+c0tGbgxTLS4pJ3|%YV8^0dwpM6PyGJhCO=urYnBuVnZBP1m!A8+pOvQ0ZQD`}qo5aqNd9!|7fdKmJ zQvZUEu+>cx*id_D8j$d?eI0jUId@fScju*C2)%+c=l)6aXn%9J^~MC}Dop@I4BEX( zCsNNrm~EWDa2{aH^z0K1%IH5!$DPw8>ET1$9>2a;@HP26;R!yE!VZTR)B$kGs)vdr zwxY)oRS!V=Uq=IAUKsm5Tda(Mv}DoSk>Lz`NnWuV=Zj@&#!)&Rj*`=e5}Co`xRAgv zTPv0K)rGI$=ilISKbg(Gxx4dvzw#bPvAR&Hz$^6~u(&Gh7b{g@_y4b=e^mV}t+$7e z3o_{f!fb-=gLnK~QL%nmIQT+O9T3fi$yGEOw&8fvs^SU%mtdiidyDVTUQE9@JltyS zAGD5}ulJh!C&x|;k9T*rnyuY~cdg?$JFiX_7FM5T-o4p*{YG9sT82sMdCiGKYDsyX zwTCj%=<$aj<}y_X_iBw5n@}t)U|a+k_Gci_0o9S|R10~Zd61sN`-@g`;XLWL7>L?2 z&jv|r6ajr*Mz*AIsFk7S+4vmQO{iZTVM5PI1zP{KqZTZiK6%1Lp#H+bgI)({FX|;> z$3DxZq2LZ==A!}r@UR<&=;$xC$(#i63r5afJK4uh^W+IEu%UPvd8S$GJG5#EI~`^_ zdWE4)Wlvqgh|;x#=5h!rVX?n|iblR9&9K>TO$~dKlsrv`>gz1~8uei<0}F%wj+VN- zkGfru=_v*UhqyvzGT*n2V8@Lq(35O5+$2gsCOX9M9tanYDbiv)A{Ngn4FexsAX90N z;^Ekc4ZRK;2OcMVQxS*u7>E@jb7s8R895>ZvJKd0A}eaZ)0BC9KO9{^N?1V?(<*$H zieS^Hy_-wK@``!VGfWzfye*CSA&FV+0=_hN<6MDwNWtaElO*gve6}*&zGZXC^%aj} z!Ha+=o&3xcyna?#C;>n7MbcwkATFSMrsDF@`ik7q=Ze&CN=wxVY{6NSYBadyatmJQ zV#zwL;6188OUvzbk?Kmy=9kmU=QPvm(2Kjc68&~+EjrP(YMl8jd^NQKg90|Yqyq-# zLft1`Sy|k$Uxem}ZXx zGqp}X>9mTSeaxx#v{#g1YL!kpw?23Eor749ygI*d^&4FS?Q%s4e*U$nD?Udk=LfMk zWAxurv=DS%)fv^qy_)JpgR}9u(~k_0gKNq>)YXW?D`CRQd3bPi(t3Ncvumnyp7{rcMI)l>q(3x|Uc&jlMS!w}mE3c|r!1`I z-k`<)!o%ES@?y2{DBHkH+bX>XgsB=?Eyr-uK*=kFBX^_GsG_9bNz}jbFJ1W+Ndqr7 z6ctgGbjEcjoaW%DR&&Ro`izrIDa&hpm6PX+TvR{bOV{speqF3diiIM6P&3}*b;Y@Y z)}bu!I)B&Q=Tg7^y4Ct&v$c8j8jgsjj4p_+=Td|``~&~}LkTos**U^V@3#*2b3=W1 zL;T_GG*no8tfe*0C))BOp?mCubM+w~&)|@K(8JUDX*?iV)3~((c61qcB8g(h2Ln&! z%4H%jtQaLUn=;gn&t^hS=PoI=XSTI)a->v-mOx(m~olQ(DDd(C{ zylvz>6Ba&qJmbfyX3^XXBfu2+^b|3s;Em>81#veEor9L7t2zzH#I+K|k^j)!-LiqO z${Z<=!!w61XCtmT^*B%6-8vVe&8^7q*k#yryX5!-5wXBN@Z~z8N zx5EW{kKCet-#pmJnkuNGO6P91IclHRHMo=R2RS%65WZ8Uf8#|iB;fl19l9a2d8X4g zd);@Hcgd(zg)=zfKE|Uk{jEZex333P^`LV-7>B3sknJ@Q&3>R3mtg(2m--Q6%#ua( z9;2PLte2PVog#43oJ)(zc4KkewBT>^!L< zW~Y%W?Cw4W3}nuUY19UwQnO3SM@pZDP5Xw*nv9Y=}Ah6c)!P}#)CY}hf zS&o|=I?|f#lL7FGj$b4v_KNgW+L#%xf~rPGp+P-;=04FjDDGX*18oXy z8g+1ZvU9LsVgEh|60R2Lknh!3AH%jFfvKFdrWn%N(j!%*g!T(S7towtT-my&FX*>3 zSAe0*pLw%Le^uCzNP9rfWsqdz?=)DDZZ6jA=qa(L>gU*wL(G*jXXpc8fm*W3;Q#=s zLrjeqHt1)!kn*V+PAxD`byR~u<~JrY=|z0SY%1PN1;0lAc*WbTs9gA3ZMdQ}g7SNn zMoQw_Jg9KI(g)SyN>#mZf3I@+MmdFkDo~e%cE;-AYH)Kus^bFhpVS$NHk9+48opV4 zHpR*2Y_FE=i;F)+?zKYgUds%3i65>v_j7)=JngjjN7mz_eI&r{#u>aK0o|H#|*m6`S3)|Aiq zEQbSn9H^LYHJ=q=ptx7KDW33d$=;U|GN|WKiB-v zwf=LB|6JR@yEgr!Pk#OHH{adKs<)r%>;K`C$B$P3YvtkE^6I1ICoAxMdFA25)#ds6 z{~RB0<>UOT#UJA6N^Q1BNy@s3EjV-Z;1CsT+{q_+IXP3W;`dP+Jix!|BD$tn!0n_5 z5)9pDqY~sQr0AolrcL_l_12bp3>mPoVW+Q>$#^(Hn2Hja6PL6|rHsaj2g=+A$*}^@ zrO_w|P9hMLNF@X%b|nN8YH`zX8U&dkS@~Wq?!_tTOLjpH>PBeHq;|u>ryG-~V>)^o zorjk(bdKV8^vB^Tb~;3;5&^NH12Bf}#XANcRzt)?^{{`NM|#sHOYc#&Cwu-L^w zKQuZr8@k?eNYtZqLf6K!B@~E+_Y4L0?2qOs>L-_oK^XR88q_{K35WFuWuyC4E$$4+ zS|GyhV-$Ci(VY$JK2Y*24XlQt=yVK73+crhBt?epXLxB5hXb81@TTSny+GlX^YFCO z`TqOWM`9^)I!Z1g*mdGwhmTh3@NjGGkqjwPsEnle&(zv`R+Q;ULVJr0YKF9S>ebu* zt;{(0VNkI^dw@frk%Xk_$7$GOypf*a3GIxoGVpNo_&7fuPt@Y865&JgrD)tih9pJ)VYZiFEZ!j#f+lH7c)sm1?E zBGqiDL$u)ebV~;o$gvFf1Cj*at8ED;bh3H;PjaePJRx))u1z6mi1h%H>WD7S;z5Y+ zMky6=8B`3BsZ@4|y;cZo=_0>mZQvjZM|FwgI7mnXg#N=x#OqH6xMpa9EDLHrKc0_~ z*$=4OFrtG__$hgjF;IiO3IiIFi7*`Ih2TX=--&==+O%vvYp_%%qIlG|rHr>GXc#O6 zyud``0b~WE5C%u@vb?(pvv_U;pApX^j-H|)xULv)u{kjA8su-6f$tHFt`pAiH0qLp zk1^&^W-S^{%9*0~=OKt;m}wY}+vl<%+hcDMd+{(;yW5BxJK8+@sf9>cGlD^eP>}5k zc|`ArFpu>V_M@n7WDLcRX<-kL6QB1jMU`Yh(hbv#RC94;D0Fdy15Al=;3+cYqt`Fh zDP3Zrl^q4eWWXMxj%lo&k-~@gUM{4upaAXJfz@C+m|dY7PPlu$E{be8ukc);NgrMp zq0R9SZ@kQP>Q#81r}0N>@dVzzJI6hDvv)e_e<~t>JM0kM_Ct=)oEjE>8m7<#yrCU4 zXGRif#ZM@@9q|iWI-qBk$xV z@fe8aO*D!=)!6Gj4L4Dw+*5HBfI%vg!FU9c+zC2=98&m7^#&V%NP7{-8N@QMNMowk zmjOPF#t0zLg4D^ILw|NSX5|pMddlK_GO&EgnaR5lBAOtavq&`r4f! zE&a$e0llDuh*Q{*fQ|5mh(*{EFrQ3Bs{J$ICc#prCV@#xdn-lG=o7*PC?A;?3!8~9 zTyP0yelp8W7k5Qh%OJe*X)Eq(N5A9%0!ZU3Wbg18qB2a=E0_koO5*_xKPpbHCTI%7 zK~%3eY${AmPNG8QA%`zB@10S6X?8)Aj9-(U${&Z^EU&1=*Jzca4x{1l(}_&&;bhpx zw!nDv1fiRGg`!{FrVjN^sdLEKaZ50AyEb3s$3qM<_z4C2IvhUmv<6!| zHd#xt@Kx3}o!jqsgoL!rCg(v-DZI*44Ed~mA*?pm8V^yQaCq>pd9>#8eO|@5{&BS_ zTx|+!iu)ljcGE5jvvb=JpB`pW%fc|z8HbOOBzF_5=RP4zV~o5Ud47XIjowFX61lS~$H{=$e+t_K z0xDt2rHbPWkY1VX=&}^{1ejtcIsIgU9&g|z7hU_~WSF9y=VUl)dj0S#*mZ#(^qvc> z^D1I>AO(Y;^iNT@<>>$D%-?*q`F8h23ss?vLZ)h*KGNaRPNZSB>?Itkq-Cws;Sa4< z_pu@c^d)CbI$gx4OTeH`9SM_a5ylirLaGq5Z5_T!q)^I^I;ku~M>>F(^r(KkNzh>s`MLqcSbyE&iMd{v zP=tA6)?7Y#gQQE+rB?084)0hdl4y(Tlg}jHYSp4; zKN-YhAvb4vz)ABelH4>n$RlvZI>2X0m(^}-A=C^L5(RB6beJK9jzTXmKqN>;G4cnJ zYkBb{NObWa+v^OsSR-z68Gbr_puc^XGab1AM2;NMa5{n|j55q|LVm0?b3nQg*_sGO z2OH4`5TJ@od|o5~C`6GNHslFOT0la}CbR-WM&FJbredS|is5A<`qWf3ZdXOnxgwE` z&iL#^m`}DbdKJZ{4HFRmL|Lh|3$z{6Zj8ML=Fme->L?3b%aAGRh-o%^orax8bEDXq zjP!vLDncz7%aWqJJ3ee~?QHIvi%Aw!@IJII*9r=~)*w@$5}5VCm}&V|jTr6BBnXnz z1?_M}`XXewqGDeF`6EHN*Fh5ZTpc6FGmg7#y5Nr+W_g5ab-vo8m9mj<>rY@j@RKh%yn@(If z8n-J(HmU6R`pVpwEO?K=HsZRVbY?nol=Vn0zKlnm6gI%mK~}kb`xDNd{OCOmbk~Ia zBQaY<7+v7c>__o;xq123MCFcX!xX4{rV3G`LV2ER0W)wdx@~QRsg7%u*J5LPI3zp< zaM8ypWKO5oF0W^{g62!t)DvJX)D1ed(X9jC(V+h>6t4I@$t;sJYY3OXIW@XmzVR>8 zwvD1Qx9glC-i=`D zWamdxMOgtvlrwMLX?00#E@fmtOM1G}de~&G;GZ&ga>*6Rp6C{)Vh@yebA zxVq3efB8LgazZCk5;$^d4rskWLFDLu71%vN4pP-b%~fPC}T8TOUs8tzWu z2=++aS0i-WN}3{I(8zv7n1vre45RSM<(YkwJ77@QOp%=j$!V?=ce@eYHPR7Vs}+Em zuvTBLh*C4u5!GT&mi81#+GQeF^nogqpVxZ>V@6chry@$@1}x_ROvXIqJGTiN!~=`! z^scogmE=blFs&&keIXw75{(G!bgZc;d+xm!YzQ#l>p~+B$!4zoBp2m?Wp5*bT1rC!k%;SgUcO@ zv}z8l(>Pc*Ff`Fb0YBHhL;IX_@~^MeeeNdh)oO=^J&~kYCU0(y+*^Ye8+2Q+`UDTv zeR6MyF5mj$5QYJj1_+PR{E_tbKu&~_@K5#j;#FFRBS#jqu*Hftg3v&j=|Hiz$d8J% za!r?M2_T@BZzsoE521`)fTf`V00*2z6 zp7|LenI<@M23$xtrd~avMk1ZtqfamHM*7}~wRY_boES9f#5?+kR8QLpNl?a1w!~Io zuY#xn97HJI1NqYp*rA?2J-zmp1=j!@VK_J;Bsln^Cz|dDNjQ}YBAD_A>h%cv-ktOa zY{ZV)_=rtQ3yt|K72{^GL>eYm(vgJbF^H^sh!DaKGT75LFeIyJgC>^Vg98q!;BWl1cGZoLW8bQwEU^XzUh7?G!U`8>G zR?3Up;*1#foY`%b)#5P%%0lSr-KkZwdk+5OrAA5+I0Z1sfyI99+mcwo$`dn)J}E&; zVqM9|6~VpLFJARnrmz_M9v-<+JHuHEoQEAU8P*rybZbqRh5du0 z=5h1rho(38U5ERa!=l%ilA4e%|20W4Tnc6*R$6cx#$M%F zTY3?L0My|naxqA*2BJ?Q(0BI6c?HjdFXJ=yKk?n6>WB)u{;j26dHV+~ye_AE9|zjy z;uXAWB6SHQN;*j?Xz^$5p>};3cYa+YZ9b2Y*z04J$8>W-G^3Y)u_jhUjkAVYS$plD z@A%??3P8CH&NQeT>5~Q4xTkMo9c;dZb{M4viJ&7=i3+xbskWPeyb|h#Q~L6Rg$E)7 zz$;TkR|xtKI|);5)UJ#g##1gKQM_5k2JUPMm>dywZ36orMYQu|ITMp3`yTh66PSUB zkY2LjM=EI3XQQqQ`O3(yIT`+(4%}Z!491(pou#vwQK3ZG<}M9{lQC~z^kQA3gvTcO zPc%p-XXpNGZk-c&*hu7b=<-}~78Dp}uMmN=4DOF+ z)ct$~gkf!{U7T6eW@s^qbpLWcSyK_|2q@AM8k(T0Pv8DZ9y; z!IW#m7-F`X#fcYg?3RSP!E7%*{!30@xEz)}$BiN#Gk|E}D(=xm);Kqb+yDKt=8LWF&65 zSq3y-gj@0ATNqJA5I*N7+j85J4^Xs#Sl*#a# z++7eMJ$$-Gg!KODT8rrjvmG~I|3JIKIK(S0D7{W%=VV|?Z?eTjDLR~du3yHt|zPO?mw?dG5PfrmJ|3A^_;_etDM1*{+$5{0zPn)k>w^X9?)epAf>tGsJhhb@;;W<0arltZ=Ob@!bshdw_H`%^d*RJ zHLQcw&x}itf0KLbfsm1^ggw+-!-ks1{kVtWkkS;PTy62n2GlTM-5L7oa}f(wBocwG zP-rlRort?Hm!%LIhwde5>Tt1uK#Ut3TF1jVmAcoaot%1qqRD?kvRd|tv(i{bY9kD# zdL52{$K5fh(IJzM)WGMFrZQv~qT+$bN>R*$5O%yP91`4fCT9Unq(t%}cHBwYBt7vg zAc=V#QTMdr)9a?uZ{W!48qY(#gWzamOjk&JN6pP`;C_O*II-l|(KMa{_lm|gJKrA@ zD_$D+$$)AJnBEew5C&hzqUVtvpD|cm79Tv2*+6NiK(5K9@)cogHCKUR@RkI|$DoBI z?5a=ia8jML^#LjBxTge+B&PAjc0WU=HX7H-SQrgB{pe&;?hG>9>|KS|sZr|q`Xi%U zr0w=@*E=9E6&C+Iwc^gM+0-ywwb zZT$*?e6etE)QM~NM&Wz?GsT~s*t~sT!)N+u8-I38;-~OyWm*6F9)3OLAItBbRv_Q7 z3Xi@I7IYKPo87RS-d!#-pmUqq!6!F=0L z_<9&I=nIP?|I{JDMcCA7MCiA%9wGxe(6^s9=r_IUhHWzPejrL?y5S*5^wKKC3YaYH zC@d9licn$-B#n0lj)O%+J%qf5+O{5aW#l!^uo>Von}<7k_BYYLqyf@&qIQq;$U15} z1p-%nRA`)fvD`a?Y6vA3B$j1DwreX@)K9KUMGGdnUy^XBbNHg&-g8(|KP=hd(asO( zOa8d^#(J$UO@X1>-Y^?w@B~2xP`f{jnD0@XHc0i)=vqL4QP^=z=)G(lPj4{ktA8&n zsD&j~FIj-T0C~|$0716{zEdL>(P%U<^MZ|PcXDvDxm%-B#K2OJCbAAVzF$5|Yp=O? zc(7Z`XY>t$wE-|2|7J>hb<}Lul&M@?L*NGEr#m|SVcSV(^iqVl(Z)gD3Egq!a~}gw za&i}UF~RlLN4oYiA8e5mbj&QkAe-Ojsq4_0ncV2GdF$XU2C+M?Vf-dH2BWdbZE1QS z(kpz$5%~&VRXlI%PDn}eXU}Q;NaJNS7rr7N^@VS4QgMyr-YzT@1-f*bG#J?{aN8R9 zscDG&u(S>3)!?-ZDnH|KNsUDb+{%mI-=rO;ArkueJWR7KD0)Lx7rn?uV{{VPHs%Vp zud*fEH@TuIPO4ntbBXQ~rcU=sB_BaG+e{PbTf+e*NTzLVVG6EmT8iSvdlTn$!F%p> z#CvY1x0Q`Mi>`UlMU_Jp&V-h|<=`7-Z!^_#$O46dIDu73?9YFSuQ9pW7eiXvM@X=s zErMIg*5RkIAZ|@Ac+y8>2eY9B$mot7U=*>;ws?mmek<~WL2hY|hwAlL&CQdy2>65D zZ}X(tI%*#OfWaS@$nKrQV>v!}ST7W9(Q*<+OP1?Xav(HN2M2qF6&!EAYTEo##ZK3C zhI1}9@!_e#NYg#O;~A$~RJ8LR%gw&tKk^uPiKiKw{Ni`C>WW`c7!dj1LS?8+Xp|5y zMqx%;7nho8=N?n}xu@QO4E+elQzNiCg3LSw>)+>-*Z=e{#^DGJjqa=tQt~``T&Dk7 zd9<3<|2%rUJlFqxme1E;EuF@LrSv@b8vb{&~Jp?c0+Tb!Q1Smfv)Y9;8#0YBbY{AOiQiu_77&fslP zao-%S>+^vLIqH`^(wGrUcjsL~!IuTwnpQ0NN zkW^Bri_uj_mmIH(gOif)y1OygeB+y*Q&t9mss}{b0A1BEL zsW30D`OZFS=-(o-` zxX3@$i?Vb&wlmBF4hVruE+aN7?T6zHTnTlwE$zndHx>)>FWNy2Ze*TCx>rO zTCWa{_BKx{i$F6ESL;YM7?IKa6)bS*9QR>WXWu;9dQ-ti)u6e5a`aQBMM$%1aNNXK zt?iwo%Hq-_9WBL=p03q z^0_YxGM|U(xf4}ca^h2y7?S~Qrq}&!GJXmPb&~O@D9LyvNw6(ig11SWr}=cPPEop6 zry%91Fr}`06!jV?$@|UIPi>;mNo5m-nN)=O$rnXW&9}w_{*KK-AT9d6XuwmqGFy&Y znJFi93ks){)WBm(zCrlZt5XCmRq4yR_GTNPARQH z>9~HsZO#j?_FHCXn11IHI}Ir6b*GW5H$TiypUZpfmDCtx!UdnkY;(q??HOkplrJZA z3JSfFvSgNN(P^4y8U#=5yW-}YW}1^NB($Z3ZZX-mc;z(E=}elNE_&+LW|O%UW|B2J zg@tvpg>?!G%Oq=@C7L_9g~3y|D4WPF%1hM1QOOr%M!ammGvjSbaci<8UOM3Zcn^C; zy@IE1T{e+hmrdj_VM+wg{!OyOKby@%RiP~vSZx)a{h>CN-+#Z%|HHga1DpzM*$!9s z%Z60UQ_)0E8K#=!r+z~?8G0^6Cw=kw`azXbEJ6{i(I{s&#Y#MVXP($*Nj%XtzNq zY)8X!i%mkxvu2Y*5d}}F%RISDX#c`GM#p2X@z{(#G3Kf29mWA-|1Io3jr3#*i_^ww ziY~-K`jDNlSlJD5&W3D)qe%>9TJjB!5;dMPs;aIk@*Tc5s_I*1f38%kEC+9Io@};` zo3Hoatk?1is3|E(&KgbXK1y@OWLK)rO$wwogZmB=l}!y#bm;_5E9Mr{#LYiBC(HO< zJdCPi;Na{hU6!)+B(rnMra3ModuOYp9nQ%{yjE{)1$!E%LEWvEftMVQvviR;ijXa~ z$jPJ}VS3>yyHqq0+r(6wsEP@Q4HtFb9b@UqS*>y#Q;-+0b29>hThvr2mS7xR1}_G* z>pUk5gBas39s$vxeo9v5nwAkB)*p_qYev_O{so|8$Uf&aM;ZsJKr1CSRw0m#@<)(XG>!r~Lf}s1eo? zJI8I0#;0i9-$*z+*R(>-V;6%k~OVDb(PYq1W!tB6*IhKLfI<%&jLW&*Uq7nBV|(MY({>{mJLjs?D* zvimivv!U~z6qf9i#$^elHg!iFUnX5Hj~vsXBVBlg&QAnW+6&>Y-~USU$F1GB+szhg z-grEqAQ%l*Ro-~$^v4HBCo)pNZ8I;O9IVMGTLwj=-zlhVTI-6^bL%=Kt?T%$`@gnT zvSb%MywmcHd-T=182hL}8rW*)souP_Ceo>bRXO;SH)%;>ck84`GKZ%uo%46SwdJIY zqvr0>L94mHttu<4HDpJ;8+f8;MxN)5xNsltjIgcCSmJf|M=wS?bgY`(Xpim zSAtdUXo>{eil{NbM}0|JKV|M(w6*0%g2tes1*|vP+Z&uK!t4&ovKWbDByr;2kL!J9 zZSSS3Jc56WvpB}DS zYx8J($-5qcRZ^$RL`?L@-wt5&C;!aCe~1^5_b<0kKDdtQ_>a})NANCV|GV;Vj{p2D zpIhNSNN-CbC+<8qLxZe6ssjzx*B%KT#QE(aLhR!_CS;x8%!Gz8t@_{)EN~h;q~QIO zT%~V{s{V`OQqHFUQ?js=$0SLgdsvk@H03ixQ;u)As2Dj_YEX>){6I{MBv?P!NRkGZnd$BZ;X1o=nlxa6H+9r@?tL#eNj3 zCtL4Ff_pMen}+ep);taBMhQIV^V}re4mRX~eadHSDq^U(gxk%SRPYHQLryO~3OVF8 z_U{cKT6^@#0YrAR{}VW(!rDI%oT#wsIjU%mDw?B;3Qwrg zZV@*}9NF!@404o_3K)ZwPiBt~Zb#e_gU=2($~2}Nbz~FX2z)dHzvK1x<1jo{fF#F| z6yQa~kdX24RGx|9(QZ$M=**G>vpCRq!T{%;ru}Hg^rOxdq1NHV~UTN7#G{fX#>DYd#QO zbEoKxMYUV!*n)%ORX6BHYIb>!InYl4!=1V}#+zK%B@pzdJ zfXmzrE#m+g${h2oKB{TV%5FmNF&f2pZ;D98^fod$7eKefLv}hhc>N5tAg271I*^x4*XDl-Q72qu1Oj+3hTXj>E4VmAtzh3k*y?_e%4?UD*w+(W( zCW2$|#UroiS=t?rpm1zeVHa;3*v!fMXFy=t?9&6AIV>YLlX|V&Wu9N*fdrs%*0)oa ztVy#ROIPBDg1>-3J_!B=v_V;CgTD%(L-}mfk3Vx-ABw)ht%)BOADqvht=hFN0;U zDJ`I(7$J4j3UjT`0-uUcNOxW@Xxu(S{-Qo}eoi|`VF*k}qeP%o;-!d=OGP`8^#V_~Q5Z~%O-jnW*$ zPXicX_0dd!>*oVQpFmjx^vi%ZXO;j<{14C6 zB!7bQlD@LKkDS^=rpE!EmBx^p6#%;ogZ5FtH0+IfppMy_=m&Zo)noer$Cg<&?gstg zn70^lfSPf9+TbiZFx8_DGGk0S^l)r~QPP4u`H`y8o{O9`>|BOem@wZ53RwWrPCJcLbdvMZO<+073>k`@fqG` z;drLhyz}rf;!X8|S~+>C&PL&2(hEm1!t%{QqtbwC?ZpxtHU2vb4_wCem3`)%B;IUp z{c|05_t8Z-!ZxWcNC&({!@e_!dN8EdbT!vbh7sQ-OSj}^`L}2!bB8+`&Zaa_t~;59 zAu;YA?7yyP7ru=2D?k=%{Ye3vK^2P4?CJsSx-yLOdXQ=;qCOBSqtMIi@=Q888fdoo z34o5l9O5{KIA*&thd9n5j&q3P9O8KM&kgZ^9})d;CjRf?%9AJA_<#6%j{o}%pIgWO zt9?KKz&RZ76TtzMg9lU}0|@-j2KAd`0{@ekz+3>mFC;MDP2>E{1L(~I=*(G&#M9T89YC)f)tIUNqrr{YdhY<^m~G-mLLGB0{Ak2u(HMRt@Ud_hKN|m7 zFp?h$gDe`%k48iOt%E<_05JKXp(34FhkteaWN}Y#1*0r35vm<+MX-8)8a9Kti94I`*bb=he|OgC?s$jWTzb@`gWd98~t!N1X@oG zI+T4kcNn22(#Hc+e#P!{q!{7tS-X;kS6%Ek-Sv+mDO=hiCH?s0kL%nlJ}FVX6pRWw zf{vgO3)JDCtfAmt61_xT;iyVE^nsKh0G*=m>Xj2!uVbsFNg)SLbpo%#0>fsWVp?ev zZJ8E)y!v?U!OHULBl;&R`^^ALE897;KdQu=A;P|7)!at@`OLn*)D&kX$M z!`0!iO)$2PZ~{3C|GD;LHH-gTTb;*${VX5Bf8L$<$A_yKxTpKTg?l>Br@=jM3ih1) zUYti${bC`Qe_ywZ^N6ZG?($Aymv@c2yanj;Hkivhhg^ON#N~$pE@d2{UKOz5O-_wn}TYU}0ZakB-je7O2#?WsV6ZiTMA6L96Nu$6ZTt^9<@ zN?r8aspX&4spXd#z4!}&T>cdhmtQ*Ia*nr@#B;pm9B=t0z%6fuw)}XorGo%0Pym>- zzmu%s*l$k!AAsDnz|CCL;^V{S*3Raxsl!yE#k8A1Jt<)h(dHHH1~UHhfJ1MB4b4oA z-^Zl~(n})^`2nE+7En&_lr!~^GaKxAbF62c;Bu3Zjh=0=a}QSwym@9G-Y(4a(tpOE zXK9RUI3g_MY`4&l=1ViVy4`<1f0m^WubMBS%27u8I_sV$_$Y?IdOw8!qqvzbC=SM(C=N>(CP5UU1p0@*# zYNwOIUk^d*cI|c$QYYu114DYJ4mj@`MLPG<`K9>ig!=ynVLbiB-gm&^>zc1~b=fsF z3Q1u=1x^q{ph9&v2}d1n1SitXL!H-f*nYT*DvEG~7k~@}xQ}Q5VF-mW+KC1NRyP-N zxO;*t`^Cf6y_aPe*H4N}ojU}bI|Nm3Gv^LL=MF*V0M$7_b?y-K<1wnPo62b*RX5!< zlL|yQ+%z>zLAnF{5ItQZ8fv9sJYL;gHyg<}BAn!&& zv%g>F{}pQ39R+*v#Y6W>yZxaNw4E}(Tmat(1L1g@J{$=b+z13`uP!r5tJNZ~)SnOz zR}47wVpLOj>dGTGMm2j^8TKZrN)s5~w1+1<^reDf*Wm2d3*l%pa@#gg-N|?|`oQ?s zcG%ykj{&rmmvg%r{1U-!IOh5~FjB?9wO)7{^^lN;qXbwVurE0<`j9t`C6&%3{gF5!9H#X~HR4-9EC85?(^ z7%#9t9ADSuCNL(X5Oi!jzRtM~b-fWe9B~?cuLuw55={ow=ZB6(;9Gt z+Gkf?3aZP&^W3Ukm|aQLCHT2HXl@Rgn}g=&pt-4_xjO;5xfr*qe9yPk%@TYG;57$> zhkjAI{dSyw!_P~qh80SAUUaT)n+H`L-z4SR8u=I_aNJ7n2bW)ieRgwdI?|*m5)L= z)xg*8D8jQtcYFoA+cR~YObALpiaIfHocMGyrt=^$^rd8k1@x0n+`YzU6WE7GVx&3h zr+V+h&1W}C@yPc&8bqV8rw%8lJ&-$h<2G=V2ulf5HN=PMIhHgnlH*zR_;9B_`F zhUJ)O;MOol-APaMGH|BbIeByN_C#&&|D=F#9&PTQ{Pc{VJE(ObRSXst_lLb0O1{Fg z{a}18&EIPtZM}gkn=f~EcTRr79=zH)*>4^nt5*j{YEvC<9-ZuLz1`hBQipGk4iAo- zAUqsLksfF)Wa?PcF`0Cnod}M2y;S%ACz$B;oD@mt;U&s7?FhsgI3lBm_0>6mZa@Jn+$+PI+?uJ=~BNR4*aLlXf()F(&=^EgKWJcMB97MAknyokL`Hl%u}=R(+*k93F19_7Aj8*7590 zb`Rc_))9x&PNLE-^N%CjGLevB9SeVHUH@6DY%}zD|Rt=I(z+27% z@Wo*dm^{U`$I9=gw%q1!WiEENhQJo>*nV=>SQ$k%kU4tq^3|c3Fjj4tQ zDCwz*c_mFjwROZ=&Jp>+hin7UP_`3f_*lG-xQ-+YzaeqAfm)6KGaH>Z4-u z6xhrKab>kTX>zXL<{c)fp6$}Ni7U&OdF3h5MV>(C6o!&K;a+au5yjy}vVH-W3 z2F#9K=wpZB9V}8hkwSOhOkh(wZxH+Rxq(^Ay5E)Icmy=nZH-ZRIg03n4QqMG5Rx@XwUkBgD^*xE!NSh|tAom7 zLFe!FI#txdG#bAQ7Hf*wTGfsN=7p8EfLDyk6;Md~oJM*CKS-Vc=8Ce;1|?ajP?KPv z#phM^ot{vnx(JA?PMy8qVPiAQvlJ}Qa6%g@!l~<;kz)a-DVSF?ZPOn~2$}BjF$(lT9+n09Z4(K8$cY>~SZxIIC|`O;?zI(XR{x!>s}) ziiqLO+t-hT}1N=JH>t<*EV##fITbphCw?2FeQyGCrFe=z`uS#1^3c zFkRy)rP;P!#G;683{-^<$v_n(Vu{Q|Ds|zaqD4oMl(gl2u62Q0m{|aB$6yC5rfJ+% z7I4~d94cl~zst-;4ONF|fxNl>JAHe1v~$v|Vde#I5&ez>xVe9@|I^;V+hh85c(n7w z=1KE+cezSVktWQ{)MBZJy}`5XAR)_Fq>P_oFMG zXl)LO!w)laZ>YK;3`d=HbuVQahmUUdcc#%Gp%K5WkU&?Z-s)|4|LyKB{{BNKg08wO zD4Vx9Z@RxS?dN9VGc!~$;r7Q@8){gURJJ#7uqO;-h7(OH9nsgyKxOxarY{S!#ECUf zvweyKw#HgTPTiUGhppi#X}5-Pr-jX|aIQb_AHthQxRZ_1v$x(EMXIpE6%*OF(Y&?N)y1PU)re=_Uh&|Ze z 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

MX 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 -^wJaIVrV`HrIf?-LGsdZ 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 Y9zTzt$Is*Ezx(I^0vJj6>i`fA0QEfuH2?qr diff --git a/libhugetlbfs-2.22.tar.gz b/libhugetlbfs-2.22.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f7907b5dc5e2913bae7d04a8bd55ad12d4e81aa4 GIT binary patch literal 174012 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%0DgTg~w<|)w+-!wzG+uh&qrsk7 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 G;=NdkGv3ETudI{!|m7_+!SeqNUXxx!ww7{ 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 literal 0 HcmV?d00001 diff --git a/0001-libhugetlbfs-2.15-fortify.patch b/libhugetlbfs-make-cflags.patch similarity index 53% rename from 0001-libhugetlbfs-2.15-fortify.patch rename to libhugetlbfs-make-cflags.patch index 8b505d6..344b85e 100644 --- a/0001-libhugetlbfs-2.15-fortify.patch +++ b/libhugetlbfs-make-cflags.patch @@ -2,12 +2,14 @@ diff --git a/Makefile b/Makefile index 73ebad7..3735440 100644 --- a/Makefile +++ b/Makefile -@@ -30,7 +30,7 @@ INSTALL = install - LDFLAGS += -Wl,-z,noexecstack -ldl +@@ -30,8 +30,8 @@ INSTALL = install + + LDFLAGS += -ldl CFLAGS ?= -O2 -g - CFLAGS += -Wall -fPIC +-CFLAGS += -Wall -fPIC -CPPFLAGS += -D__LIBHUGETLBFS__ ++CFLAGS += -Wall -fPIC -fstack-protector-strong +CPPFLAGS += -D__LIBHUGETLBFS__ -DFORTIFY_SOURCE - - ARCH = $(shell uname -m | sed -e s/i.86/i386/) + + ARCH ?= $(shell uname -m | sed -e s/i.86/i386/) CC ?= gcc diff --git a/libhugetlbfs.spec b/libhugetlbfs.spec index 0232829..4e49f7b 100644 --- a/libhugetlbfs.spec +++ b/libhugetlbfs.spec @@ -1,24 +1,18 @@ %global ldscriptdir %{_datadir}/%{name}/ldscripts Name: libhugetlbfs -Version: 2.20 -Release: 14 +Version: 2.22 +Release: 1 Summary: A library which provides easy access to huge pages of memory License: LGPLv2+ URL: https://github.com/libhugetlbfs/libhugetlbfs Source0: https://github.com/libhugetlbfs/libhugetlbfs/releases/download/%{version}/%{name}-%{version}.tar.gz Patch0000: 0000-build_flags.patch -Patch0001: 0001-libhugetlbfs-2.15-fortify.patch -Patch0002: 0002-libhugetlbfs-2.16-makefile_cflags.patch -Patch0003: 0003-fix-behavior-while-shrinking.patch -Patch0004: 0004-ld.hugetlbfs-pick-an-emulation-if-m-is-not-present.patch -Patch0005: 0005-ld.hugetlbfs-support-512M-hugepages-on-aarch64.patch -Patch0006: 0006-libhugetlbfs-fix-tests-with-heapshrink-fail.patch -Patch0007: 0007-libhugetlbfs-2.20-change-scripts-to-py3.patch Patch9000:libhugetlbfs-2.16-remap_segments_with_MAP_SHARED.patch Patch9001:libhugetlbfs-2.16-remap_segments_with_MAP_SHARED-2.patch +Patch9002:libhugetlbfs-make-cflags.patch BuildRequires: gcc glibc-devel glibc-static @@ -90,6 +84,12 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/security/limits.d/hugepages.conf %changelog +* Fri Apr 24 2020 lihongjiang - 2.22-1 +- Type:enhancement +- ID:NA +- SUG:restart +- DESC:update version to 2.22 + * Tue Feb 25 2020 lihongjiang - 2.20-14 - Type:enhancement - ID:NA -- Gitee