From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH] perf tool: more user-friendly errors from trace
Date: Thu, 3 Oct 2013 13:58:32 -0300 [thread overview]
Message-ID: <20131003165832.GA2436@ghostprotocols.net> (raw)
In-Reply-To: <1380788891-31908-1-git-send-email-artagnon@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1972 bytes --]
Em Thu, Oct 03, 2013 at 01:58:11PM +0530, Ramkumar Ramachandra escreveu:
> Currently, execution of 'perf trace' reports the following cryptic
> message to the user:
>
> $ perf trace
> Couldn't read the raw_syscalls tracepoints information!
>
> Now, it prints a detailed message:
What about the one attached instead? It
[acme@zoo ~]$ mount | grep debugfs
[acme@zoo ~]$
[acme@zoo ~]$ perf trace usleep 1
Is debugfs mounted? Try 'sudo mount -t debugfs nodev /sys/kernel/debug'
[acme@zoo ~]$ sudo mkdir /d
[acme@zoo ~]$ sudo mount -t debugfs nodev /d
[acme@zoo ~]$ mount | grep debugfs
nodev on /d type debugfs (rw,relatime)
[acme@zoo ~]$
[acme@zoo ~]$ perf trace usleep 1
Couldn't access debugfs. Try 'sudo mount -o remount,mode=755 /d'
[acme@zoo ~]$ sudo mount -o remount,mode=755 /d
[acme@zoo ~]$ perf trace -e mmap usleep 1
0.956 ( 0.004 ms): mmap(len: 4096, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS, fd: 4294967295) = 0x46dfc000
0.995 ( 0.004 ms): mmap(len: 125871, prot: READ, flags: PRIVATE, fd: 3 ) = 0x46ddd000
1.045 ( 0.005 ms): mmap(addr: 0x3da4800000, len: 2135088, prot: EXEC|READ, flags: PRIVATE|DENYWRITE, fd: 3) = 0xa4800000
1.068 ( 0.005 ms): mmap(addr: 0x3da4a08000, len: 8192, prot: READ|WRITE, flags: PRIVATE|DENYWRITE|FIXED, fd: 3, off: 32768) = 0xa4a08000
1.109 ( 0.005 ms): mmap(addr: 0x3d93400000, len: 3896312, prot: EXEC|READ, flags: PRIVATE|DENYWRITE, fd: 3) = 0x93400000
1.125 ( 0.006 ms): mmap(addr: 0x3d937ad000, len: 24576, prot: READ|WRITE, flags: PRIVATE|DENYWRITE|FIXED, fd: 3, off: 1757184) = 0x937ad000
1.134 ( 0.004 ms): mmap(addr: 0x3d937b3000, len: 17400, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS|FIXED, fd: 4294967295) = 0x937b3000
1.147 ( 0.003 ms): mmap(len: 4096, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS, fd: 4294967295) = 0x46ddc000
1.160 ( 0.003 ms): mmap(len: 8192, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS, fd: 4294967295) = 0x46dda000
[acme@zoo ~]$
[-- Attachment #2: tracepoint_error_message.patch --]
[-- Type: text/plain, Size: 1628 bytes --]
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 1bb8f15..8a35943 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1501,17 +1501,13 @@ static int trace__run(struct trace *trace, int argc, const char **argv)
}
if (perf_evlist__add_newtp(evlist, "raw_syscalls", "sys_enter", trace__sys_enter) ||
- perf_evlist__add_newtp(evlist, "raw_syscalls", "sys_exit", trace__sys_exit)) {
- fprintf(trace->output, "Couldn't read the raw_syscalls tracepoints information!\n");
- goto out_delete_evlist;
- }
+ perf_evlist__add_newtp(evlist, "raw_syscalls", "sys_exit", trace__sys_exit))
+ goto out_error_tp;
if (trace->sched &&
perf_evlist__add_newtp(evlist, "sched", "sched_stat_runtime",
- trace__sched_stat_runtime)) {
- fprintf(trace->output, "Couldn't read the sched_stat_runtime tracepoint information!\n");
- goto out_delete_evlist;
- }
+ trace__sched_stat_runtime))
+ goto out_error_tp;
err = perf_evlist__create_maps(evlist, &trace->opts.target);
if (err < 0) {
@@ -1628,6 +1624,23 @@ out_delete_evlist:
out:
trace->live = false;
return err;
+out_error_tp:
+ switch (errno) {
+ case ENOENT:
+ fputs("Is debugfs mounted? Try 'sudo mount -t debugfs nodev /sys/kernel/debug'\n", trace->output);
+ break;
+ case EACCES:
+ fprintf(trace->output,
+ "Couldn't access debugfs. Try 'sudo mount -o remount,mode=755 %s'\n",
+ debugfs_mountpoint);
+ break;
+ default:
+ fprintf(trace->output, "Can't trace: %s!\n", sys_errlist[errno]);
+ break;
+
+ }
+
+ goto out_unmap_evlist;
}
static int trace__replay(struct trace *trace)
next prev parent reply other threads:[~2013-10-03 16:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-03 8:28 [PATCH] perf tool: more user-friendly errors from trace Ramkumar Ramachandra
2013-10-03 16:58 ` Arnaldo Carvalho de Melo [this message]
2013-10-03 17:18 ` David Ahern
2013-10-03 17:27 ` Arnaldo Carvalho de Melo
2013-10-04 4:52 ` Ramkumar Ramachandra
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=20131003165832.GA2436@ghostprotocols.net \
--to=acme@ghostprotocols.net \
--cc=artagnon@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.