diff options
author | Jin Yao <yao.jin@linux.intel.com> | 2018-06-01 05:01:01 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-06-06 11:52:09 -0400 |
commit | 5f9e0f3158a5cd0ef7bb205b9f1826b2ec1893a9 (patch) | |
tree | 55eb34bc0a2eb86b0c225a0e4a5e8baead871103 /tools/perf/util/scripting-engines/trace-event-python.c | |
parent | 2be732c02adb15ed7f2196f075fe63ba6991642c (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.c | 23 |
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 | ||
375 | static 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 | ||
376 | static PyObject *python_process_callchain(struct perf_sample *sample, | 389 | static 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 | } |