linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO
@ 2015-05-27  8:37 Masami Hiramatsu
  2015-05-27  8:37 ` [PATCH perf/core 2/2] [BUGFIX] perf probe: Fix an error when deleting probes successfully Masami Hiramatsu
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Masami Hiramatsu @ 2015-05-27  8:37 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Richard Weinberger, Linux Kernel Mailing List,
	David Ahern, namhyung, Jiri Olsa, Ingo Molnar

Show the reason of error when dso__load* failed. This shows
when user gives wrong kernel image or wrong path.

Without this, perf probe shows an obscure message.
  ----
  $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
  Failed to find path of kernel module.
    Error: Failed to show lines.
  ----

With this, perf shows appropriate error message.
  ----
  $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
  Failed to find the path for kernel: Mismatching build id
    Error: Failed to show lines.
  ----
And
  ----
  $ perf probe -k /non-exist/kernel/vmlinux -L vfs_read
  Failed to find the path for kernel: No such file or directory
    Error: Failed to show lines.
  ----

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
---
 tools/perf/util/probe-event.c |   47 +++++++++++++++++++++--------------------
 tools/perf/util/probe-event.h |    3 ---
 2 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 0922565..f5be411 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -200,11 +200,12 @@ static void put_target_map(struct map *map, bool user)
 }
 
 
-static struct dso *kernel_get_module_dso(const char *module)
+static int kernel_get_module_dso(const char *module, struct dso **pdso)
 {
 	struct dso *dso;
 	struct map *map;
 	const char *vmlinux_name;
+	int ret = 0;
 
 	if (module) {
 		list_for_each_entry(dso, &host_machine->kernel_dsos.head,
@@ -214,30 +215,21 @@ static struct dso *kernel_get_module_dso(const char *module)
 				goto found;
 		}
 		pr_debug("Failed to find module %s.\n", module);
-		return NULL;
+		return -ENOENT;
 	}
 
 	map = host_machine->vmlinux_maps[MAP__FUNCTION];
 	dso = map->dso;
 
 	vmlinux_name = symbol_conf.vmlinux_name;
-	if (vmlinux_name) {
-		if (dso__load_vmlinux(dso, map, vmlinux_name, false, NULL) <= 0)
-			return NULL;
-	} else {
-		if (dso__load_vmlinux_path(dso, map, NULL) <= 0) {
-			pr_debug("Failed to load kernel map.\n");
-			return NULL;
-		}
-	}
+	dso->load_errno = 0;
+	if (vmlinux_name)
+		ret = dso__load_vmlinux(dso, map, vmlinux_name, false, NULL);
+	else
+		ret = dso__load_vmlinux_path(dso, map, NULL);
 found:
-	return dso;
-}
-
-const char *kernel_get_module_path(const char *module)
-{
-	struct dso *dso = kernel_get_module_dso(module);
-	return (dso) ? dso->long_name : NULL;
+	*pdso = dso;
+	return ret;
 }
 
 static int convert_exec_to_group(const char *exec, char **result)
@@ -389,16 +381,25 @@ static int get_alternative_line_range(struct debuginfo *dinfo,
 static struct debuginfo *open_debuginfo(const char *module, bool silent)
 {
 	const char *path = module;
-	struct debuginfo *ret;
+	char reason[STRERR_BUFSIZE];
+	struct debuginfo *ret = NULL;
+	struct dso *dso = NULL;
+	int err;
 
 	if (!module || !strchr(module, '/')) {
-		path = kernel_get_module_path(module);
-		if (!path) {
+		err = kernel_get_module_dso(module, &dso);
+		if (err < 0) {
+			if (!dso || dso->load_errno == 0) {
+				if (!strerror_r(-err, reason, STRERR_BUFSIZE))
+					strcpy(reason, "(unknown)");
+			} else
+				dso__strerror_load(dso, reason, STRERR_BUFSIZE);
 			if (!silent)
-				pr_err("Failed to find path of %s module.\n",
-				       module ?: "kernel");
+				pr_err("Failed to find the path for %s: %s\n",
+					module ?: "kernel", reason);
 			return NULL;
 		}
+		path = dso->long_name;
 	}
 	ret = debuginfo__new(path);
 	if (!ret && !silent) {
diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
index 537eb32..31db6ee 100644
--- a/tools/perf/util/probe-event.h
+++ b/tools/perf/util/probe-event.h
@@ -131,9 +131,6 @@ extern void line_range__clear(struct line_range *lr);
 /* Initialize line range */
 extern int line_range__init(struct line_range *lr);
 
-/* Internal use: Return kernel/module path */
-extern const char *kernel_get_module_path(const char *module);
-
 extern int add_perf_probe_events(struct perf_probe_event *pevs, int npevs);
 extern int del_perf_probe_events(struct strfilter *filter);
 extern int show_perf_probe_events(struct strfilter *filter);



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

* [PATCH perf/core 2/2] [BUGFIX] perf probe: Fix an error when deleting probes successfully
  2015-05-27  8:37 [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Masami Hiramatsu
@ 2015-05-27  8:37 ` Masami Hiramatsu
  2015-05-27 16:52   ` [tip:perf/core] " tip-bot for Masami Hiramatsu
  2015-05-27 12:50 ` [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Arnaldo Carvalho de Melo
  2015-05-27 16:52 ` [tip:perf/core] " tip-bot for Masami Hiramatsu
  2 siblings, 1 reply; 6+ messages in thread
From: Masami Hiramatsu @ 2015-05-27  8:37 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Richard Weinberger, Linux Kernel Mailing List,
	David Ahern, namhyung, Jiri Olsa, Ingo Molnar

Fix a bug in del_perf_probe_events() which returns an error
(-ENOENT) even if the probes are successfully deleted.
This happens only if the probes are on user-apps and not on
kernel, simply because it doesn't clear the previous error.

So, without this fix, we get an error even though events
are successfully removed.
  ------
  # ./perf probe -x ./perf del_perf_probe_events
  Added new event:
    probe_perf:del_perf_probe_events (on del_perf_probe_events in ...

  You can now use it in all perf tools, such as:

          perf record -e probe_perf:del_perf_probe_events -aR sleep 1

  # ./perf probe -d \*:\*
  Removed event: probe_perf:del_perf_probe_events
    Error: Failed to delete events.
  ------

This fixes the above error.
  ------
  # ./perf probe -d \*:\*
  Removed event: probe_perf:del_perf_probe_events
  ------

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
---
 tools/perf/util/probe-event.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index f5be411..97da984 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2811,13 +2811,14 @@ int del_perf_probe_events(struct strfilter *filter)
 		goto error;
 
 	ret2 = del_trace_probe_events(ufd, filter, unamelist);
-	if (ret2 < 0 && ret2 != -ENOENT)
+	if (ret2 < 0 && ret2 != -ENOENT) {
 		ret = ret2;
-	else if (ret == -ENOENT && ret2 == -ENOENT) {
+		goto error;
+	}
+	if (ret == -ENOENT && ret2 == -ENOENT)
 		pr_debug("\"%s\" does not hit any event.\n", str);
 		/* Note that this is silently ignored */
-		ret = 0;
-	}
+	ret = 0;
 
 error:
 	if (kfd >= 0) {



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

* Re: [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO
  2015-05-27  8:37 [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Masami Hiramatsu
  2015-05-27  8:37 ` [PATCH perf/core 2/2] [BUGFIX] perf probe: Fix an error when deleting probes successfully Masami Hiramatsu
@ 2015-05-27 12:50 ` Arnaldo Carvalho de Melo
  2015-05-27 23:42   ` Masami Hiramatsu
  2015-05-27 16:52 ` [tip:perf/core] " tip-bot for Masami Hiramatsu
  2 siblings, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-05-27 12:50 UTC (permalink / raw)
  To: Masami Hiramatsu
  Cc: Peter Zijlstra, Richard Weinberger, Linux Kernel Mailing List,
	David Ahern, namhyung, Jiri Olsa, Ingo Molnar

Em Wed, May 27, 2015 at 05:37:18PM +0900, Masami Hiramatsu escreveu:
> Show the reason of error when dso__load* failed. This shows
> when user gives wrong kernel image or wrong path.
 
> Without this, perf probe shows an obscure message.
>   ----
>   $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
>   Failed to find path of kernel module.
>     Error: Failed to show lines.
>   ----
 
> With this, perf shows appropriate error message.
>   ----
>   $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
>   Failed to find the path for kernel: Mismatching build id
>     Error: Failed to show lines.
>   ----
> And
>   ----
>   $ perf probe -k /non-exist/kernel/vmlinux -L vfs_read
>   Failed to find the path for kernel: No such file or directory
>     Error: Failed to show lines.
>   ----

Its better than before, and I am applying it.

But please consider to change the message further, because when one
specifies the vmlinux file to use with -k/--vmlinux, the tool is not
trying to "find the path for kernel", it is trying to use a specific
vmlinux file.

I.e. the messages above are good if we do:

  perf probe -L vfs_read

Here it _will_ try to find the path, as none was given.

So, when -k/--vmlinux is used, I suggest that the message be:

  $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
  The kernel file "~/kbin/linux-3.x86_64/vmlinux" could not be used: Mismatching build id
    Error: Failed to show lines.

And:

  $ perf probe -k /non-exist/kernel/vmlinux -L vfs_read
  The kernel file "/non-exist/kernel/vmlinux" could not be used: No such file or directory
    Error: Failed to show lines.

Thanks!

- Arnaldo

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

* [tip:perf/core] perf probe: Show the error reason comes from invalid DSO
  2015-05-27  8:37 [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Masami Hiramatsu
  2015-05-27  8:37 ` [PATCH perf/core 2/2] [BUGFIX] perf probe: Fix an error when deleting probes successfully Masami Hiramatsu
  2015-05-27 12:50 ` [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Arnaldo Carvalho de Melo
@ 2015-05-27 16:52 ` tip-bot for Masami Hiramatsu
  2 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Masami Hiramatsu @ 2015-05-27 16:52 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: peterz, hpa, richard, dsahern, namhyung, linux-kernel, jolsa,
	acme, mingo, tglx, masami.hiramatsu.pt

Commit-ID:  419e87382873b11b17cb31e2f21859570a32e0d1
Gitweb:     http://git.kernel.org/tip/419e87382873b11b17cb31e2f21859570a32e0d1
Author:     Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
AuthorDate: Wed, 27 May 2015 17:37:18 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 27 May 2015 12:21:45 -0300

perf probe: Show the error reason comes from invalid DSO

Show the reason of error when dso__load* fails. This shows when user
gives wrong kernel image or wrong path.

Without this, perf probe shows an obscure message:

  ----
  $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
  Failed to find path of kernel module.
    Error: Failed to show lines.
  ----

With this, perf shows appropriate error message:

  ----
  $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
  Failed to find the path for kernel: Mismatching build id
    Error: Failed to show lines.
  ----

And:

  ----
  $ perf probe -k /non-exist/kernel/vmlinux -L vfs_read
  Failed to find the path for kernel: No such file or directory
    Error: Failed to show lines.
  ----

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Richard Weinberger <richard@nod.at>
Link: http://lkml.kernel.org/r/20150527083718.23880.84100.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/probe-event.c | 47 ++++++++++++++++++++++---------------------
 tools/perf/util/probe-event.h |  3 ---
 2 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 0922565..f5be411 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -200,11 +200,12 @@ static void put_target_map(struct map *map, bool user)
 }
 
 
-static struct dso *kernel_get_module_dso(const char *module)
+static int kernel_get_module_dso(const char *module, struct dso **pdso)
 {
 	struct dso *dso;
 	struct map *map;
 	const char *vmlinux_name;
+	int ret = 0;
 
 	if (module) {
 		list_for_each_entry(dso, &host_machine->kernel_dsos.head,
@@ -214,30 +215,21 @@ static struct dso *kernel_get_module_dso(const char *module)
 				goto found;
 		}
 		pr_debug("Failed to find module %s.\n", module);
-		return NULL;
+		return -ENOENT;
 	}
 
 	map = host_machine->vmlinux_maps[MAP__FUNCTION];
 	dso = map->dso;
 
 	vmlinux_name = symbol_conf.vmlinux_name;
-	if (vmlinux_name) {
-		if (dso__load_vmlinux(dso, map, vmlinux_name, false, NULL) <= 0)
-			return NULL;
-	} else {
-		if (dso__load_vmlinux_path(dso, map, NULL) <= 0) {
-			pr_debug("Failed to load kernel map.\n");
-			return NULL;
-		}
-	}
+	dso->load_errno = 0;
+	if (vmlinux_name)
+		ret = dso__load_vmlinux(dso, map, vmlinux_name, false, NULL);
+	else
+		ret = dso__load_vmlinux_path(dso, map, NULL);
 found:
-	return dso;
-}
-
-const char *kernel_get_module_path(const char *module)
-{
-	struct dso *dso = kernel_get_module_dso(module);
-	return (dso) ? dso->long_name : NULL;
+	*pdso = dso;
+	return ret;
 }
 
 static int convert_exec_to_group(const char *exec, char **result)
@@ -389,16 +381,25 @@ static int get_alternative_line_range(struct debuginfo *dinfo,
 static struct debuginfo *open_debuginfo(const char *module, bool silent)
 {
 	const char *path = module;
-	struct debuginfo *ret;
+	char reason[STRERR_BUFSIZE];
+	struct debuginfo *ret = NULL;
+	struct dso *dso = NULL;
+	int err;
 
 	if (!module || !strchr(module, '/')) {
-		path = kernel_get_module_path(module);
-		if (!path) {
+		err = kernel_get_module_dso(module, &dso);
+		if (err < 0) {
+			if (!dso || dso->load_errno == 0) {
+				if (!strerror_r(-err, reason, STRERR_BUFSIZE))
+					strcpy(reason, "(unknown)");
+			} else
+				dso__strerror_load(dso, reason, STRERR_BUFSIZE);
 			if (!silent)
-				pr_err("Failed to find path of %s module.\n",
-				       module ?: "kernel");
+				pr_err("Failed to find the path for %s: %s\n",
+					module ?: "kernel", reason);
 			return NULL;
 		}
+		path = dso->long_name;
 	}
 	ret = debuginfo__new(path);
 	if (!ret && !silent) {
diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
index 537eb32..31db6ee 100644
--- a/tools/perf/util/probe-event.h
+++ b/tools/perf/util/probe-event.h
@@ -131,9 +131,6 @@ extern void line_range__clear(struct line_range *lr);
 /* Initialize line range */
 extern int line_range__init(struct line_range *lr);
 
-/* Internal use: Return kernel/module path */
-extern const char *kernel_get_module_path(const char *module);
-
 extern int add_perf_probe_events(struct perf_probe_event *pevs, int npevs);
 extern int del_perf_probe_events(struct strfilter *filter);
 extern int show_perf_probe_events(struct strfilter *filter);

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

* [tip:perf/core] perf probe: Fix an error when deleting probes successfully
  2015-05-27  8:37 ` [PATCH perf/core 2/2] [BUGFIX] perf probe: Fix an error when deleting probes successfully Masami Hiramatsu
@ 2015-05-27 16:52   ` tip-bot for Masami Hiramatsu
  0 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Masami Hiramatsu @ 2015-05-27 16:52 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: jolsa, mingo, richard, linux-kernel, dsahern, tglx,
	masami.hiramatsu.pt, acme, peterz, acme, namhyung, hpa

Commit-ID:  dddc7ee32fa13efc66afa71ebd83bce545c8392a
Gitweb:     http://git.kernel.org/tip/dddc7ee32fa13efc66afa71ebd83bce545c8392a
Author:     Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
AuthorDate: Wed, 27 May 2015 17:37:25 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 27 May 2015 12:21:46 -0300

perf probe: Fix an error when deleting probes successfully

Fix a bug in del_perf_probe_events() which returns an error (-ENOENT)
even if the probes are successfully deleted.

This happens only if the probes are on user-apps and not on kernel,
simply because it doesn't clear the previous error.

So, without this fix, we get an error even though events are being
successfully removed.

  ------
  # ./perf probe -x ./perf del_perf_probe_events
  Added new event:
    probe_perf:del_perf_probe_events (on del_perf_probe_events in ...

  You can now use it in all perf tools, such as:

          perf record -e probe_perf:del_perf_probe_events -aR sleep 1

  # ./perf probe -d \*:\*
  Removed event: probe_perf:del_perf_probe_events
    Error: Failed to delete events.
  ------

This fixes the above error.
  ------
  # ./perf probe -d \*:\*
  Removed event: probe_perf:del_perf_probe_events
  ------

Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Richard Weinberger <richard@nod.at>
Link: http://lkml.kernel.org/r/20150527083725.23880.45209.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/probe-event.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index f5be411..97da984 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2811,13 +2811,14 @@ int del_perf_probe_events(struct strfilter *filter)
 		goto error;
 
 	ret2 = del_trace_probe_events(ufd, filter, unamelist);
-	if (ret2 < 0 && ret2 != -ENOENT)
+	if (ret2 < 0 && ret2 != -ENOENT) {
 		ret = ret2;
-	else if (ret == -ENOENT && ret2 == -ENOENT) {
+		goto error;
+	}
+	if (ret == -ENOENT && ret2 == -ENOENT)
 		pr_debug("\"%s\" does not hit any event.\n", str);
 		/* Note that this is silently ignored */
-		ret = 0;
-	}
+	ret = 0;
 
 error:
 	if (kfd >= 0) {

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

* Re: [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO
  2015-05-27 12:50 ` [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Arnaldo Carvalho de Melo
@ 2015-05-27 23:42   ` Masami Hiramatsu
  0 siblings, 0 replies; 6+ messages in thread
From: Masami Hiramatsu @ 2015-05-27 23:42 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Richard Weinberger, Linux Kernel Mailing List,
	David Ahern, namhyung, Jiri Olsa, Ingo Molnar

On 2015/05/27 21:50, Arnaldo Carvalho de Melo wrote:
> Em Wed, May 27, 2015 at 05:37:18PM +0900, Masami Hiramatsu escreveu:
>> Show the reason of error when dso__load* failed. This shows
>> when user gives wrong kernel image or wrong path.
>  
>> Without this, perf probe shows an obscure message.
>>   ----
>>   $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
>>   Failed to find path of kernel module.
>>     Error: Failed to show lines.
>>   ----
>  
>> With this, perf shows appropriate error message.
>>   ----
>>   $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
>>   Failed to find the path for kernel: Mismatching build id
>>     Error: Failed to show lines.
>>   ----
>> And
>>   ----
>>   $ perf probe -k /non-exist/kernel/vmlinux -L vfs_read
>>   Failed to find the path for kernel: No such file or directory
>>     Error: Failed to show lines.
>>   ----
> 
> Its better than before, and I am applying it.
> 
> But please consider to change the message further, because when one
> specifies the vmlinux file to use with -k/--vmlinux, the tool is not
> trying to "find the path for kernel", it is trying to use a specific
> vmlinux file.
> 
> I.e. the messages above are good if we do:
> 
>   perf probe -L vfs_read
> 
> Here it _will_ try to find the path, as none was given.
> 
> So, when -k/--vmlinux is used, I suggest that the message be:
> 
>   $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read
>   The kernel file "~/kbin/linux-3.x86_64/vmlinux" could not be used: Mismatching build id
>     Error: Failed to show lines.
> 
> And:
> 
>   $ perf probe -k /non-exist/kernel/vmlinux -L vfs_read
>   The kernel file "/non-exist/kernel/vmlinux" could not be used: No such file or directory
>     Error: Failed to show lines.

Indeed! This looks better for me.

Thank you!

-- 
Masami HIRAMATSU
Linux Technology Research Center, System Productivity Research Dept.
Center for Technology Innovation - Systems Engineering
Hitachi, Ltd., Research & Development Group
E-mail: masami.hiramatsu.pt@hitachi.com

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

end of thread, other threads:[~2015-05-27 23:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-27  8:37 [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Masami Hiramatsu
2015-05-27  8:37 ` [PATCH perf/core 2/2] [BUGFIX] perf probe: Fix an error when deleting probes successfully Masami Hiramatsu
2015-05-27 16:52   ` [tip:perf/core] " tip-bot for Masami Hiramatsu
2015-05-27 12:50 ` [PATCH perf/core 1/2] [RESEND] perf probe: Show the error reason comes from invalid DSO Arnaldo Carvalho de Melo
2015-05-27 23:42   ` Masami Hiramatsu
2015-05-27 16:52 ` [tip:perf/core] " tip-bot for Masami Hiramatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).