From: Alexander Shishkin <alexander.shishkin@linux.intel.com>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>, Ingo Molnar <mingo@redhat.com>
Cc: linux-kernel@vger.kernel.org, vince@deater.net,
eranian@google.com, johannes@sipsolutions.net,
Arnaldo Carvalho de Melo <acme@infradead.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>
Subject: [PATCH RFC v3 0/6] Introduce extended syscall error reporting
Date: Fri, 11 Sep 2015 18:59:59 +0300 [thread overview]
Message-ID: <1441987205-4021-1-git-send-email-alexander.shishkin@linux.intel.com> (raw)
Hi Ingo, Peter and everybody,
This is another stab at the error reporting problem. I've been sitting
on this code for a couple of weeks now for no good reason, so I
figured I'd just put it out there and see where we go next.
This time around, the error reporting itself is a separate
"infrastructure", which is mostly a header file infested with macros
and some code to set it all up and deliver to userspace. The latter is
now done with a prctl() like Ingo suggested. This is the first
patch. Then, it gets integrated into perf core and one example error
return is annotated with a message. The rest of the patchset adds
support to perf tooling, which includes its own JSON parser (I wasn't
aware that Andi was bringing one in with one of his pull requests at
the moment of writing it and I still like it better not only because
of the NIH symptoms) and extends perf_evsel__open_strerror() to fetch
these error messages from the kernel. I didn't include all the
instrumentation that I did in the previous versions of the patchset to
keep the noise level down.
Alexander Shishkin (6):
exterr: Introduce extended syscall error reporting
perf: Use extended syscall error reporting
perf/x86: Annotate a BTS error with extended error reporting
perf tools: Add a simple JSON parser
perf tools: Add userspace counterpart for extended error reporting
perf tools: Use extended syscall error reporting
arch/x86/kernel/cpu/perf_event.c | 5 +-
include/linux/exterr.h | 99 ++++++++++++++++
include/linux/perf_event.h | 14 +++
include/linux/sched.h | 1 +
include/uapi/linux/prctl.h | 5 +
kernel/events/core.c | 17 ++-
kernel/sys.c | 6 +
lib/Makefile | 2 +
lib/exterr.c | 157 ++++++++++++++++++++++++
tools/include/tools/json.h | 40 +++++++
tools/lib/util/json.c | 250 +++++++++++++++++++++++++++++++++++++++
tools/perf/util/Build | 6 +
tools/perf/util/evsel.c | 12 +-
tools/perf/util/exterr.c | 79 +++++++++++++
tools/perf/util/exterr.h | 21 ++++
15 files changed, 711 insertions(+), 3 deletions(-)
create mode 100644 include/linux/exterr.h
create mode 100644 lib/exterr.c
create mode 100644 tools/include/tools/json.h
create mode 100644 tools/lib/util/json.c
create mode 100644 tools/perf/util/exterr.c
create mode 100644 tools/perf/util/exterr.h
--
2.5.1
next reply other threads:[~2015-09-11 16:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-11 15:59 Alexander Shishkin [this message]
2015-09-11 16:00 ` [PATCH RFC v3 1/6] exterr: Introduce extended syscall error reporting Alexander Shishkin
2015-09-14 20:19 ` Jonathan Corbet
2015-09-15 14:15 ` Alexander Shishkin
2015-09-15 14:31 ` Johannes Berg
2015-09-15 15:24 ` Alexander Shishkin
2015-09-15 16:35 ` Jonathan Corbet
2015-09-15 17:02 ` Johannes Berg
2015-09-14 21:59 ` Jonathan Corbet
2016-01-11 10:34 ` Alexander Shishkin
2015-09-11 16:00 ` [PATCH RFC v3 2/6] perf: Use " Alexander Shishkin
2015-09-11 16:00 ` [PATCH RFC v3 3/6] perf/x86: Annotate a BTS error with extended " Alexander Shishkin
2015-09-11 16:00 ` [PATCH RFC v3 4/6] perf tools: Add a simple JSON parser Alexander Shishkin
2015-09-11 16:00 ` [PATCH RFC v3 5/6] perf tools: Add userspace counterpart for extended error reporting Alexander Shishkin
2015-09-11 16:00 ` [PATCH RFC v3 6/6] perf tools: Use extended syscall " Alexander Shishkin
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=1441987205-4021-1-git-send-email-alexander.shishkin@linux.intel.com \
--to=alexander.shishkin@linux.intel.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@infradead.org \
--cc=eranian@google.com \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=vince@deater.net \
/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 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).