| From f18d5cf86cdb58eb50cafb5a5e20943ec7a61b1f Mon Sep 17 00:00:00 2001 |
| From: Adrian Hunter <adrian.hunter@intel.com> |
| Date: Mon, 29 Jun 2020 12:19:55 +0300 |
| Subject: perf scripts python: exported-sql-viewer.py: Fix time chart call tree |
| |
| From: Adrian Hunter <adrian.hunter@intel.com> |
| |
| commit f18d5cf86cdb58eb50cafb5a5e20943ec7a61b1f upstream. |
| |
| Using Python version 3.8.2 and PySide2 version 5.14.0, time chart call tree |
| would not expand the tree to the result. Fix by using setExpanded(). |
| |
| 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: Charts -> Time chart by CPU |
| Move mouse over middle of chart |
| Right-click and select Show Call Tree |
| |
| Before: displays Call Tree but not expanded to selected time |
| After: displays Call Tree expanded to selected time |
| |
| Fixes: e69d5df75d74d ("perf scripts python: exported-sql-viewer.py: Add ability for Call tree to open at a specified task and time") |
| 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-7-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 | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/tools/perf/scripts/python/exported-sql-viewer.py |
| +++ b/tools/perf/scripts/python/exported-sql-viewer.py |
| @@ -1130,6 +1130,7 @@ class CallTreeWindow(TreeWindowBase): |
| child = self.model.index(row, 0, parent) |
| if child.internalPointer().dbid == dbid: |
| found = True |
| + self.view.setExpanded(parent, True) |
| self.view.setCurrentIndex(child) |
| parent = child |
| break |
| @@ -1142,6 +1143,7 @@ class CallTreeWindow(TreeWindowBase): |
| return |
| last_child = None |
| for row in xrange(n): |
| + self.view.setExpanded(parent, True) |
| child = self.model.index(row, 0, parent) |
| child_call_time = child.internalPointer().call_time |
| if child_call_time < time: |
| @@ -1154,9 +1156,11 @@ class CallTreeWindow(TreeWindowBase): |
| if not last_child: |
| if not found: |
| child = self.model.index(0, 0, parent) |
| + self.view.setExpanded(parent, True) |
| self.view.setCurrentIndex(child) |
| return |
| found = True |
| + self.view.setExpanded(parent, True) |
| self.view.setCurrentIndex(last_child) |
| parent = last_child |
| |