| From 031c8d5edb1ddeb6d398f7942ce2a01a1a51ada9 Mon Sep 17 00:00:00 2001 |
| From: Adrian Hunter <adrian.hunter@intel.com> |
| Date: Mon, 29 Jun 2020 12:19:54 +0300 |
| Subject: perf scripts python: exported-sql-viewer.py: Fix zero id in call tree 'Find' result |
| |
| From: Adrian Hunter <adrian.hunter@intel.com> |
| |
| commit 031c8d5edb1ddeb6d398f7942ce2a01a1a51ada9 upstream. |
| |
| Using ctrl-F ('Find') would not find 'unknown' because it matches id |
| zero. Fix by excluding id zero from selection. |
| |
| Example: |
| |
| $ perf record -e intel_pt//u uname |
| Linux |
| [ perf record: Woken up 1 times to write data ] |
| [ perf record: Captured and wrote 0.034 MB perf.data ] |
| $ perf script --itrace=bep -s ~/libexec/perf-core/scripts/python/export-to-sqlite.py perf.data.db branches calls |
| 2020-06-26 15:32:14.928997 Creating database ... |
| 2020-06-26 15:32:14.933971 Writing records... |
| 2020-06-26 15:32:15.535251 Adding indexes |
| 2020-06-26 15:32:15.542993 Dropping unused tables |
| 2020-06-26 15:32:15.549716 Done |
| $ python3 ~/libexec/perf-core/scripts/python/exported-sql-viewer.py perf.data.db |
| |
| Select: Reports -> Call Tree |
| Press: Ctrl-F |
| Enter: unknown |
| Press: Enter |
| |
| Before: displays 'unknown' not found |
| After: tree is expanded to line showing 'unknown' |
| |
| Fixes: ae8b887c00d3f ("perf scripts python: exported-sql-viewer.py: Add call tree") |
| Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> |
| Cc: Jiri Olsa <jolsa@redhat.com> |
| Cc: stable@vger.kernel.org |
| Link: http://lore.kernel.org/lkml/20200629091955.17090-6-adrian.hunter@intel.com |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| tools/perf/scripts/python/exported-sql-viewer.py | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/tools/perf/scripts/python/exported-sql-viewer.py |
| +++ b/tools/perf/scripts/python/exported-sql-viewer.py |
| @@ -951,7 +951,8 @@ class CallTreeModel(CallGraphModelBase): |
| " FROM calls" |
| " INNER JOIN call_paths ON calls.call_path_id = call_paths.id" |
| " INNER JOIN symbols ON call_paths.symbol_id = symbols.id" |
| - " WHERE symbols.name" + match + |
| + " WHERE calls.id <> 0" |
| + " AND symbols.name" + match + |
| " ORDER BY comm_id, thread_id, call_time, calls.id") |
| |
| def FindPath(self, query): |