Commit-ID:  5f9e0f3158a5cd0ef7bb205b9f1826b2ec1893a9
Gitweb:     https://git.kernel.org/tip/5f9e0f3158a5cd0ef7bb205b9f1826b2ec1893a9
Author:     Jin Yao <yao....@linux.intel.com>
AuthorDate: Fri, 1 Jun 2018 17:01:01 +0800
Committer:  Arnaldo Carvalho de Melo <a...@redhat.com>
CommitDate: Wed, 6 Jun 2018 12:52:09 -0300

perf script python: Move dsoname code to a new function

This patch creates a new function get_dsoname() and move the code which
gets the dsoname string to this function.

That's because in next patch, when we process LBR data, we will also
need get_dsoname() to return dsoname for branch from/to.

Signed-off-by: Jin Yao <yao....@linux.intel.com>
Reviewed-by: Andi Kleen <a...@linux.intel.com>
Cc: Alexander Shishkin <alexander.shish...@linux.intel.com>
Cc: Jiri Olsa <jo...@kernel.org>
Cc: Kan Liang <kan.li...@linux.intel.com>
Cc: Peter Zijlstra <pet...@infradead.org>
Link: 
http://lkml.kernel.org/r/1527843663-32288-2-git-send-email-yao....@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>
---
 .../util/scripting-engines/trace-event-python.c    | 23 ++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/tools/perf/util/scripting-engines/trace-event-python.c 
b/tools/perf/util/scripting-engines/trace-event-python.c
index 7f8afacd08ee..f863e96fb7bc 100644
--- a/tools/perf/util/scripting-engines/trace-event-python.c
+++ b/tools/perf/util/scripting-engines/trace-event-python.c
@@ -372,6 +372,19 @@ static PyObject *get_field_numeric_entry(struct 
event_format *event,
        return obj;
 }
 
+static const char *get_dsoname(struct map *map)
+{
+       const char *dsoname = "[unknown]";
+
+       if (map && map->dso) {
+               if (symbol_conf.show_kernel_path && map->dso->long_name)
+                       dsoname = map->dso->long_name;
+               else
+                       dsoname = map->dso->name;
+       }
+
+       return dsoname;
+}
 
 static PyObject *python_process_callchain(struct perf_sample *sample,
                                         struct perf_evsel *evsel,
@@ -427,14 +440,8 @@ static PyObject *python_process_callchain(struct 
perf_sample *sample,
                }
 
                if (node->map) {
-                       struct map *map = node->map;
-                       const char *dsoname = "[unknown]";
-                       if (map && map->dso) {
-                               if (symbol_conf.show_kernel_path && 
map->dso->long_name)
-                                       dsoname = map->dso->long_name;
-                               else
-                                       dsoname = map->dso->name;
-                       }
+                       const char *dsoname = get_dsoname(node->map);
+
                        pydict_set_item_string_decref(pyelem, "dso",
                                        _PyUnicode_FromString(dsoname));
                }

Reply via email to