| From 7ff520b0a71dd2db695b52ad117d81b7eaf6ff9d Mon Sep 17 00:00:00 2001 |
| From: Adrian Hunter <adrian.hunter@intel.com> |
| Date: Mon, 29 Jun 2020 12:19:53 +0300 |
| Subject: perf scripts python: exported-sql-viewer.py: Fix zero id in call graph 'Find' result |
| |
| From: Adrian Hunter <adrian.hunter@intel.com> |
| |
| commit 7ff520b0a71dd2db695b52ad117d81b7eaf6ff9d 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 -> Context-Sensitive Call Graph |
| Press: Ctrl-F |
| Enter: unknown |
| Press: Enter |
| |
| Before: gets stuck |
| After: tree is expanded to line showing 'unknown' |
| |
| Fixes: 254c0d820b86d ("perf scripts python: exported-sql-viewer.py: Factor out CallGraphModelBase") |
| 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-5-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 |
| @@ -756,7 +756,8 @@ class CallGraphModel(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 + |
| " GROUP BY comm_id, thread_id, call_path_id" |
| " ORDER BY comm_id, thread_id, call_path_id") |
| |