From: tip-bot for Tony Jones <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: acme@redhat.com, mingo@kernel.org, linux-kernel@vger.kernel.org,
hpa@zytor.com, tglx@linutronix.de, adrian.hunter@intel.com,
tonyj@suse.de
Subject: [tip:perf/urgent] perf script python: Add printdate function to SQL exporters
Date: Fri, 22 Mar 2019 15:09:50 -0700 [thread overview]
Message-ID: <tip-49f93bbf17e6267eb34e0c12a9813f3a8723749e@git.kernel.org> (raw)
In-Reply-To: <20190309000518.2438-5-tonyj@suse.de>
Commit-ID: 49f93bbf17e6267eb34e0c12a9813f3a8723749e
Gitweb: https://git.kernel.org/tip/49f93bbf17e6267eb34e0c12a9813f3a8723749e
Author: Tony Jones <tonyj@suse.de>
AuthorDate: Fri, 8 Mar 2019 16:05:18 -0800
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 11 Mar 2019 16:13:02 -0300
perf script python: Add printdate function to SQL exporters
Introduce a printdate function to eliminate the repetitive use of
datetime.datetime.today() in the SQL exporting scripts.
Signed-off-by: Tony Jones <tonyj@suse.de>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Link: http://lkml.kernel.org/r/20190309000518.2438-5-tonyj@suse.de
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/scripts/python/export-to-postgresql.py | 19 +++++++++++--------
tools/perf/scripts/python/export-to-sqlite.py | 13 ++++++++-----
2 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/tools/perf/scripts/python/export-to-postgresql.py b/tools/perf/scripts/python/export-to-postgresql.py
index 00ab972a2eba..c3eae1d77d36 100644
--- a/tools/perf/scripts/python/export-to-postgresql.py
+++ b/tools/perf/scripts/python/export-to-postgresql.py
@@ -251,6 +251,9 @@ perf_db_export_callchains = False
def printerr(*args, **kw_args):
print(*args, file=sys.stderr, **kw_args)
+def printdate(*args, **kw_args):
+ print(datetime.datetime.today(), *args, sep=' ', **kw_args)
+
def usage():
printerr("Usage is: export-to-postgresql.py <database name> [<columns>] [<calls>] [<callchains>]")
printerr("where: columns 'all' or 'branches'")
@@ -289,7 +292,7 @@ def do_query(q, s):
return
raise Exception("Query failed: " + q.lastError().text())
-print(datetime.datetime.today(), "Creating database...")
+printdate("Creating database...")
db = QSqlDatabase.addDatabase('QPSQL')
query = QSqlQuery(db)
@@ -582,7 +585,7 @@ if perf_db_export_calls:
call_file = open_output_file("call_table.bin")
def trace_begin():
- print(datetime.datetime.today(), "Writing to intermediate files...")
+ printdate("Writing to intermediate files...")
# id == 0 means unknown. It is easier to create records for them than replace the zeroes with NULLs
evsel_table(0, "unknown")
machine_table(0, 0, "unknown")
@@ -598,7 +601,7 @@ def trace_begin():
unhandled_count = 0
def trace_end():
- print(datetime.datetime.today(), "Copying to database...")
+ printdate("Copying to database...")
copy_output_file(evsel_file, "selected_events")
copy_output_file(machine_file, "machines")
copy_output_file(thread_file, "threads")
@@ -613,7 +616,7 @@ def trace_end():
if perf_db_export_calls:
copy_output_file(call_file, "calls")
- print(datetime.datetime.today(), "Removing intermediate files...")
+ printdate("Removing intermediate files...")
remove_output_file(evsel_file)
remove_output_file(machine_file)
remove_output_file(thread_file)
@@ -628,7 +631,7 @@ def trace_end():
if perf_db_export_calls:
remove_output_file(call_file)
os.rmdir(output_dir_name)
- print(datetime.datetime.today(), "Adding primary keys")
+ printdate("Adding primary keys")
do_query(query, 'ALTER TABLE selected_events ADD PRIMARY KEY (id)')
do_query(query, 'ALTER TABLE machines ADD PRIMARY KEY (id)')
do_query(query, 'ALTER TABLE threads ADD PRIMARY KEY (id)')
@@ -643,7 +646,7 @@ def trace_end():
if perf_db_export_calls:
do_query(query, 'ALTER TABLE calls ADD PRIMARY KEY (id)')
- print(datetime.datetime.today(), "Adding foreign keys")
+ printdate("Adding foreign keys")
do_query(query, 'ALTER TABLE threads '
'ADD CONSTRAINT machinefk FOREIGN KEY (machine_id) REFERENCES machines (id),'
'ADD CONSTRAINT processfk FOREIGN KEY (process_id) REFERENCES threads (id)')
@@ -679,8 +682,8 @@ def trace_end():
do_query(query, 'CREATE INDEX pid_idx ON calls (parent_id)')
if (unhandled_count):
- print(datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events")
- print(datetime.datetime.today(), "Done")
+ printdate("Warning: ", unhandled_count, " unhandled events")
+ printdate("Done")
def trace_unhandled(event_name, context, event_fields_dict):
global unhandled_count
diff --git a/tools/perf/scripts/python/export-to-sqlite.py b/tools/perf/scripts/python/export-to-sqlite.py
index 3da338243aed..3b71902a5a21 100644
--- a/tools/perf/scripts/python/export-to-sqlite.py
+++ b/tools/perf/scripts/python/export-to-sqlite.py
@@ -65,6 +65,9 @@ perf_db_export_callchains = False
def printerr(*args, **keyword_args):
print(*args, file=sys.stderr, **keyword_args)
+def printdate(*args, **kw_args):
+ print(datetime.datetime.today(), *args, sep=' ', **kw_args)
+
def usage():
printerr("Usage is: export-to-sqlite.py <database name> [<columns>] [<calls>] [<callchains>]");
printerr("where: columns 'all' or 'branches'");
@@ -105,7 +108,7 @@ def do_query_(q):
return
raise Exception("Query failed: " + q.lastError().text())
-print(datetime.datetime.today(), "Creating database ...")
+printdate("Creating database ...")
db_exists = False
try:
@@ -383,7 +386,7 @@ if perf_db_export_calls:
call_query.prepare("INSERT INTO calls VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
def trace_begin():
- print(datetime.datetime.today(), "Writing records...")
+ printdate("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")
@@ -402,14 +405,14 @@ unhandled_count = 0
def trace_end():
do_query(query, 'END TRANSACTION')
- print(datetime.datetime.today(), "Adding indexes")
+ printdate("Adding indexes")
if perf_db_export_calls:
do_query(query, 'CREATE INDEX pcpid_idx ON calls (parent_call_path_id)')
do_query(query, 'CREATE INDEX pid_idx ON calls (parent_id)')
if (unhandled_count):
- print(datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events")
- print(datetime.datetime.today(), "Done")
+ printdate("Warning: ", unhandled_count, " unhandled events")
+ printdate("Done")
def trace_unhandled(event_name, context, event_fields_dict):
global unhandled_count
next prev parent reply other threads:[~2019-03-22 22:10 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-09 0:05 [PATCH v3 0/4] perf script python: add Python3 support Tony Jones
2019-03-09 0:05 ` [PATCH v3 1/4] perf script python: add Python3 support to exported-sql-viewer.py Tony Jones
2019-03-22 22:07 ` [tip:perf/urgent] perf script python: Add " tip-bot for Tony Jones
2019-03-09 0:05 ` [PATCH v3 2/4] perf script python: add Python3 support to export-to-postgresql.py Tony Jones
2019-03-22 22:08 ` [tip:perf/urgent] perf script python: Add " tip-bot for Tony Jones
2019-03-09 0:05 ` [PATCH v3 3/4] perf script python: add Python3 support to export-to-sqlite.py Tony Jones
2019-03-22 22:09 ` [tip:perf/urgent] perf script python: Add " tip-bot for Tony Jones
2019-03-09 0:05 ` [PATCH v3 4/4] perf script python: add printdate function to SQL exporters Tony Jones
2019-03-22 22:09 ` tip-bot for Tony Jones [this message]
2019-03-11 9:27 ` [PATCH v3 0/4] perf script python: add Python3 support Hunter, Adrian
2019-03-11 14:59 ` acme@kernel.org
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-49f93bbf17e6267eb34e0c12a9813f3a8723749e@git.kernel.org \
--to=tipbot@zytor.com \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=tonyj@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.