mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RFC PATCH 0/1] perf annotate: Don't prepend symfs path to vmlinux path
@ 2018-02-11 20:32 Martin Vuille
  2018-02-11 20:32 ` [RFC PATCH 1/1] " Martin Vuille
  0 siblings, 1 reply; 2+ messages in thread
From: Martin Vuille @ 2018-02-11 20:32 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: linux-perf-users, linux-kernel

This fix works for my use case of supplying both '--symfs' and '--vmlinux'
options, and should be harmless if '--symfs' is not specified, but I suspect
it could cause problems if '--symfs' is specified without '--vmlinux', as
the symfs path will no longer be prepended and vmlinux may no longer be found.

Would appreciate any insights on a better approach to fix fix the issue.

Regards,
MV

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [RFC PATCH 1/1] perf annotate: Don't prepend symfs path to vmlinux path
  2018-02-11 20:32 [RFC PATCH 0/1] perf annotate: Don't prepend symfs path to vmlinux path Martin Vuille
@ 2018-02-11 20:32 ` Martin Vuille
  0 siblings, 0 replies; 2+ messages in thread
From: Martin Vuille @ 2018-02-11 20:32 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: linux-perf-users, linux-kernel

When selecting the filename to pass to objdump for disassembly, if there is
no entry for vmlinux in the build-id cache then the fallback code prepends
symfs path to vmlinux path. If the vmlinux option was specified, this is
unnecessary and, as a result, vmlinux is not found.

Don't prepend symfs path if DSO is [kernel.kallsyms]

Signed-off-by: Martin Vuille <jpmv27@aim.com>
---
 tools/perf/util/annotate.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 425b7f0760ec..0b78cc4fb155 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1412,7 +1412,14 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
 		 * cache, or is just a kallsyms file, well, lets hope that this
 		 * DSO is the same as when 'perf record' ran.
 		 */
-		__symbol__join_symfs(filename, filename_size, dso->long_name);
+		if (!strstr(dso->short_name, DSO__NAME_KALLSYMS))
+		{
+			__symbol__join_symfs(filename, filename_size, dso->long_name);
+		}
+		else
+		{
+			scnprintf(filename, filename_size, "%s", dso->long_name);
+		}
 	}
 
 	free(build_id_path);
-- 
2.13.6

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-02-11 20:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-11 20:32 [RFC PATCH 0/1] perf annotate: Don't prepend symfs path to vmlinux path Martin Vuille
2018-02-11 20:32 ` [RFC PATCH 1/1] " Martin Vuille

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®