perf fixes
Linus,
Please pull the latest perf/urgent git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git perf/urgent
Thanks,
Ingo
------------------>
Arnaldo Carvalho de Melo (1):
perf symbols: Fix vmlinux path when not using --symfs
Lin Ming (1):
perf symbols: Avoid resolving [kernel.kallsyms] to real path for buildid cache
tools/perf/util/header.c | 11 ++++++++--- tools/perf/util/symbol.c | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-)
tools/perf/util/header.c +8 -3
@@ -270,11 +270,15 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir, const char *name, bool is_kallsyms) { const size_t size = PATH_MAX; -char *realname =realpath (name,NULL ), - *filename =malloc (size), +char *realname, *filename =malloc (size), *linkname =malloc (size), *targetname;int len, err =-1 ; +if (is_kallsyms) + realname = (char *)name; +else + realname =realpath (name,NULL ); +if (realname ==NULL || filename ==NULL || linkname ==NULL ) goto out_free;
@@ -306,7 +310,8 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,if (symlink (targetname, linkname) ==0 ) err =0 ; out_free: -free (realname); +if (!is_kallsyms) +free (realname);free (filename);free (linkname);return err;
tools/perf/util/symbol.c +1 -1
@@ -1836,7 +1836,7 @@ int dso__load_vmlinux(struct dso *self, struct map *map,int err =-1 , fd;char symfs_vmlinux[PATH_MAX ]; -snprintf (symfs_vmlinux,sizeof (symfs_vmlinux),"%s/%s" , +snprintf (symfs_vmlinux,sizeof (symfs_vmlinux),"%s%s" , symbol_conf.symfs, vmlinux); fd =open (symfs_vmlinux,O_RDONLY );if (fd <0 )