From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Jiri Olsa <jolsa@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>, Andi Kleen <andi@firstfloor.org>
Subject: [PATCH 3/5] perf tools: Update srcline/file if needed
Date: Sun, 21 Feb 2016 23:22:36 +0900 [thread overview]
Message-ID: <1456064558-13086-3-git-send-email-namhyung@kernel.org> (raw)
In-Reply-To: <1456064558-13086-1-git-send-email-namhyung@kernel.org>
Normally the hist entry's srcline and/or srcfile is set during sorting.
However sometime it's possible to a hist entry's srcline is not set yet
after the sorting. This is because the entry is so unique and other
sort keys already make it distinct. Then the srcline/file sort didn't
have a chance to be called during the sorting. In that case it has NULL
srcline/srcfile field and shows nothing.
Before:
$ perf report -s comm,sym,srcline
...
Overhead Command Symbol
-----------------------------------------------------------------
34.42% swapper [k] intel_idle intel_idle.c:0
2.44% perf [.] __poll_nocancel (null)
1.70% gnome-shell [k] fw_domains_get (null)
1.04% Xorg [k] sock_poll (null)
After:
34.42% swapper [k] intel_idle intel_idle.c:0
2.44% perf [.] __poll_nocancel .:0
1.70% gnome-shell [k] fw_domains_get fw_domains_get+42
1.04% Xorg [k] sock_poll socket.c:0
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/util/sort.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 7daea71691df..6808d73164b5 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -315,6 +315,16 @@ sort__srcline_cmp(struct hist_entry *left, struct hist_entry *right)
static int hist_entry__srcline_snprintf(struct hist_entry *he, char *bf,
size_t size, unsigned int width)
{
+ if (!he->srcline) {
+ if (!he->ms.map)
+ he->srcline = SRCLINE_UNKNOWN;
+ else {
+ struct map *map = he->ms.map;
+ he->srcline = get_srcline(map->dso,
+ map__rip_2objdump(map, he->ip),
+ he->ms.sym, true);
+ }
+ }
return repsep_snprintf(bf, size, "%-*.*s", width, width, he->srcline);
}
@@ -368,6 +378,12 @@ sort__srcfile_cmp(struct hist_entry *left, struct hist_entry *right)
static int hist_entry__srcfile_snprintf(struct hist_entry *he, char *bf,
size_t size, unsigned int width)
{
+ if (!he->srcfile) {
+ if (!he->ms.map)
+ he->srcfile = no_srcfile;
+ else
+ he->srcfile = get_srcfile(he);
+ }
return repsep_snprintf(bf, size, "%-*.*s", width, width, he->srcfile);
}
--
2.7.1
next prev parent reply other threads:[~2016-02-21 18:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-21 14:22 [PATCH 1/5] perf tools: Fix assertion failure on dynamic entry Namhyung Kim
2016-02-21 14:22 ` [PATCH 2/5] perf tools: Fix segfault on dynamic entries Namhyung Kim
2016-02-21 17:37 ` Jiri Olsa
2016-02-25 5:37 ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-02-21 14:22 ` Namhyung Kim [this message]
2016-02-21 17:39 ` [PATCH 3/5] perf tools: Update srcline/file if needed Jiri Olsa
2016-02-22 0:31 ` [PATCH v2 " Namhyung Kim
2016-02-22 6:49 ` Jiri Olsa
2016-02-25 5:37 ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-02-21 14:22 ` [PATCH 4/5] perf tools: Fix alignment on some sort keys Namhyung Kim
2016-02-21 17:40 ` Jiri Olsa
2016-02-22 0:32 ` [PATCH v2 " Namhyung Kim
2016-02-25 5:38 ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-02-21 14:22 ` [PATCH 5/5] perf tools: Fix column width setting on 'trace' sort key Namhyung Kim
2016-02-21 17:41 ` Jiri Olsa
2016-02-25 5:38 ` [tip:perf/core] " tip-bot for Namhyung Kim
2016-02-21 17:37 ` [PATCH 1/5] perf tools: Fix assertion failure on dynamic entry Jiri Olsa
2016-02-22 15:08 ` Arnaldo Carvalho de Melo
2016-02-25 5:38 ` [tip:perf/core] " tip-bot for Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1456064558-13086-3-git-send-email-namhyung@kernel.org \
--to=namhyung@kernel.org \
--cc=acme@kernel.org \
--cc=andi@firstfloor.org \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome