perf symbols: Look for vmlinux in more places

Now that we can check the buildid to see if it really matches,
this can be done safely:

  vmlinux
  /boot/vmlinux
  /boot/vmlinux-<uts.release>
  /lib/modules/<uts.release>/build/vmlinux
  /usr/lib/debug/lib/modules/%s/vmlinux

More can be added - if you know about distros that put the
vmlinux somewhere else please let us know.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1259001550-8194-1-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Arnaldo Carvalho de Melo
2009-11-23 16:39:10 -02:00
committed by Ingo Molnar
parent 1b290d670f
commit cc612d8199
11 changed files with 122 additions and 23 deletions

View File

@@ -52,6 +52,7 @@ static char *pretty_printing_style = default_pretty_printing_style;
static int exclude_other = 1;
static char callchain_default_opt[] = "fractal,0.5";
const char *vmlinux_name;
static char *cwd;
static int cwdlen;
@@ -925,8 +926,9 @@ static int __cmd_report(void)
register_perf_file_handler(&file_handler);
ret = mmap_dispatch_perf_file(&header, input_name, force, full_paths,
&cwdlen, &cwd);
ret = mmap_dispatch_perf_file(&header, input_name, vmlinux_name,
!vmlinux_name, force,
full_paths, &cwdlen, &cwd);
if (ret)
return ret;