86 lines
3.3 KiB
Diff
86 lines
3.3 KiB
Diff
From: Tony Jones <tonyj@suse.de>
|
|
Date: Fri, 8 Mar 2019 16:05:17 -0800
|
|
Subject: perf script python: Add Python3 support to export-to-sqlite.py
|
|
Origin: https://git.kernel.org/linus/ebf6c5c181abe9309788c6241d39602a1ce18723
|
|
Bug-Debian: https://bugs.debian.org/944641
|
|
|
|
Support both Python2 and Python3 in the export-to-sqlite.py script
|
|
|
|
The use of 'from __future__' implies the minimum supported Python2 version
|
|
is now v2.6
|
|
|
|
Signed-off-by: Tony Jones <tonyj@suse.de>
|
|
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
|
Link: http://lkml.kernel.org/r/20190309000518.2438-4-tonyj@suse.de
|
|
Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
|
|
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
---
|
|
tools/perf/scripts/python/export-to-sqlite.py | 23 ++++++++++++++---------
|
|
1 file changed, 14 insertions(+), 9 deletions(-)
|
|
|
|
--- a/tools/perf/scripts/python/export-to-sqlite.py
|
|
+++ b/tools/perf/scripts/python/export-to-sqlite.py
|
|
@@ -10,6 +10,8 @@
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
# more details.
|
|
|
|
+from __future__ import print_function
|
|
+
|
|
import os
|
|
import sys
|
|
import struct
|
|
@@ -60,11 +62,14 @@ perf_db_export_mode = True
|
|
perf_db_export_calls = False
|
|
perf_db_export_callchains = False
|
|
|
|
+def printerr(*args, **keyword_args):
|
|
+ print(*args, file=sys.stderr, **keyword_args)
|
|
+
|
|
def usage():
|
|
- print >> sys.stderr, "Usage is: export-to-sqlite.py <database name> [<columns>] [<calls>] [<callchains>]"
|
|
- print >> sys.stderr, "where: columns 'all' or 'branches'"
|
|
- print >> sys.stderr, " calls 'calls' => create calls and call_paths table"
|
|
- print >> sys.stderr, " callchains 'callchains' => create call_paths table"
|
|
+ printerr("Usage is: export-to-sqlite.py <database name> [<columns>] [<calls>] [<callchains>]");
|
|
+ printerr("where: columns 'all' or 'branches'");
|
|
+ printerr(" calls 'calls' => create calls and call_paths table");
|
|
+ printerr(" callchains 'callchains' => create call_paths table");
|
|
raise Exception("Too few arguments")
|
|
|
|
if (len(sys.argv) < 2):
|
|
@@ -100,7 +105,7 @@ def do_query_(q):
|
|
return
|
|
raise Exception("Query failed: " + q.lastError().text())
|
|
|
|
-print datetime.datetime.today(), "Creating database..."
|
|
+print(datetime.datetime.today(), "Creating database ...")
|
|
|
|
db_exists = False
|
|
try:
|
|
@@ -376,7 +381,7 @@ if perf_db_export_calls:
|
|
call_query.prepare("INSERT INTO calls VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
|
|
|
|
def trace_begin():
|
|
- print datetime.datetime.today(), "Writing records..."
|
|
+ print(datetime.datetime.today(), "Writing records...")
|
|
do_query(query, 'BEGIN TRANSACTION')
|
|
# id == 0 means unknown. It is easier to create records for them than replace the zeroes with NULLs
|
|
evsel_table(0, "unknown")
|
|
@@ -394,13 +399,13 @@ unhandled_count = 0
|
|
def trace_end():
|
|
do_query(query, 'END TRANSACTION')
|
|
|
|
- print datetime.datetime.today(), "Adding indexes"
|
|
+ print(datetime.datetime.today(), "Adding indexes")
|
|
if perf_db_export_calls:
|
|
do_query(query, 'CREATE INDEX pcpid_idx ON calls (parent_call_path_id)')
|
|
|
|
if (unhandled_count):
|
|
- print datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events"
|
|
- print datetime.datetime.today(), "Done"
|
|
+ print(datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events")
|
|
+ print(datetime.datetime.today(), "Done")
|
|
|
|
def trace_unhandled(event_name, context, event_fields_dict):
|
|
global unhandled_count
|