aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/scripting-engines/trace-event-python.c
diff options
context:
space:
mode:
authorJin Yao <yao.jin@linux.intel.com>2018-06-01 05:01:01 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2018-06-06 11:52:09 -0400
commit5f9e0f3158a5cd0ef7bb205b9f1826b2ec1893a9 (patch)
tree55eb34bc0a2eb86b0c225a0e4a5e8baead871103 /tools/perf/util/scripting-engines/trace-event-python.c
parent2be732c02adb15ed7f2196f075fe63ba6991642c (diff)
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.jin@linux.intel.com> Reviewed-by: Andi Kleen <ak@linux.intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1527843663-32288-2-git-send-email-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-python.c')
-rw-r--r--tools/perf/util/scripting-engines/trace-event-python.c23
1 files 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,
372 return obj; 372 return obj;
373} 373}
374 374
375static const char *get_dsoname(struct map *map)
376{
377 const char *dsoname = "[unknown]";
378
379 if (map && map->dso) {
380 if (symbol_conf.show_kernel_path && map->dso->long_name)
381 dsoname = map->dso->long_name;
382 else
383 dsoname = map->dso->name;
384 }
385
386 return dsoname;
387}
375 388
376static PyObject *python_process_callchain(struct perf_sample *sample, 389static PyObject *python_process_callchain(struct perf_sample *sample,
377 struct perf_evsel *evsel, 390 struct perf_evsel *evsel,
@@ -427,14 +440,8 @@ static PyObject *python_process_callchain(struct perf_sample *sample,
427 } 440 }
428 441
429 if (node->map) { 442 if (node->map) {
430 struct map *map = node->map; 443 const char *dsoname = get_dsoname(node->map);
431 const char *dsoname = "[unknown]"; 444
432 if (map && map->dso) {
433 if (symbol_conf.show_kernel_path && map->dso->long_name)
434 dsoname = map->dso->long_name;
435 else
436 dsoname = map->dso->name;
437 }
438 pydict_set_item_string_decref(pyelem, "dso", 445 pydict_set_item_string_decref(pyelem, "dso",
439 _PyUnicode_FromString(dsoname)); 446 _PyUnicode_FromString(dsoname));
440 } 447 }