From: Masami Hiramatsu <mhiramat@kernel.org>
To: Alexei Starovoitov <ast@fb.com>, Josef Bacik <jbacik@fb.com>
Cc: rostedt@goodmis.org, mingo@redhat.com, davem@davemloft.net,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
ast@kernel.org, kernel-team@fb.com, daniel@iogearbox.net,
linux-btrfs@vger.kernel.org, darrick.wong@oracle.com,
mhiramat@kernel.org, Josef Bacik <josef@toxicpanda.com>,
Akinobu Mita <akinobu.mita@gmail.com>
Subject: [RFC PATCH bpf-next v2 0/4] Separate error injection table from kprobes
Date: Tue, 26 Dec 2017 16:46:28 +0900 [thread overview]
Message-ID: <151427438796.32561.4235654585430455286.stgit@devbox> (raw)
Hi Josef and Alexei,
Here are the 2nd version of patches to moving error injection
table from kprobes. In this series I did a small fixes and
add function-based fault injection.
Here is the previous version:
https://lkml.org/lkml/2017/12/22/554
There are 2 main reasons why I separate it from kprobes.
- kprobes users can modify execution path not only at
error-injection whitelist functions but also other
functions. I don't like to suggest user that such
limitation is from kprobes itself.
- This error injection information is also useful for
ftrace (function-hook) and livepatch. It should not
be limited by CONFIG_KPROBES.
So I introduced CONFIG_FUNCTION_ERROR_INJECTION for this feature.
Also CONFIG_FAIL_FUNCTION is added, which provides function-based
error injection interface via debugfs following fault-injection
framework. See [4/4].
Any thoughts?
BTW, I think we should add an error-range description in
ALLOW_ERROR_INJECTION() macro. If user sets a success
return value and override it by mistake, caller must
break data or cause kernel panic.
Thank you,
---
Masami Hiramatsu (4):
tracing/kprobe: bpf: Check error injectable event is on function entry
tracing/kprobe: bpf: Compare instruction pointer with original one
error-injection: Separate error-injection from kprobe
error-injection: Support fault injection framework
Documentation/fault-injection/fault-injection.txt | 5 +
arch/Kconfig | 2
arch/x86/Kconfig | 2
arch/x86/include/asm/error-injection.h | 12 +
arch/x86/kernel/kprobes/ftrace.c | 14 -
arch/x86/lib/Makefile | 2
arch/x86/lib/error-inject.c | 19 ++
fs/btrfs/disk-io.c | 2
fs/btrfs/free-space-cache.c | 2
include/asm-generic/error-injection.h | 20 ++
include/asm-generic/vmlinux.lds.h | 14 +
include/linux/bpf.h | 12 -
include/linux/error-injection.h | 21 ++
include/linux/kprobes.h | 1
include/linux/module.h | 6 -
kernel/Makefile | 1
kernel/fail_function.c | 169 ++++++++++++++++++
kernel/kprobes.c | 163 -----------------
kernel/module.c | 8 -
kernel/trace/Kconfig | 4
kernel/trace/bpf_trace.c | 9 -
kernel/trace/trace_kprobe.c | 32 +--
kernel/trace/trace_probe.h | 12 +
lib/Kconfig.debug | 14 +
lib/Makefile | 1
lib/error-inject.c | 198 +++++++++++++++++++++
26 files changed, 506 insertions(+), 239 deletions(-)
create mode 100644 arch/x86/include/asm/error-injection.h
create mode 100644 arch/x86/lib/error-inject.c
create mode 100644 include/asm-generic/error-injection.h
create mode 100644 include/linux/error-injection.h
create mode 100644 kernel/fail_function.c
create mode 100644 lib/error-inject.c
--
Masami Hiramatsu (Linaro)
next reply other threads:[~2017-12-26 7:46 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-26 7:46 Masami Hiramatsu [this message]
2017-12-26 7:46 ` [RFC PATCH bpf-next v2 1/4] tracing/kprobe: bpf: Check error injectable event is on function entry Masami Hiramatsu
2017-12-27 1:57 ` Alexei Starovoitov
2017-12-27 5:56 ` Masami Hiramatsu
2017-12-27 22:46 ` Alexei Starovoitov
2017-12-28 2:34 ` Masami Hiramatsu
2017-12-28 3:45 ` Alexei Starovoitov
2017-12-28 4:16 ` Steven Rostedt
2017-12-28 4:32 ` Alexei Starovoitov
2017-12-28 8:20 ` Masami Hiramatsu
2017-12-29 1:03 ` Alexei Starovoitov
2017-12-29 8:20 ` Masami Hiramatsu
2018-01-08 3:01 ` Alexei Starovoitov
2018-01-08 13:21 ` Masami Hiramatsu
2017-12-28 7:56 ` Masami Hiramatsu
2017-12-26 7:47 ` [RFC PATCH bpf-next v2 2/4] tracing/kprobe: bpf: Compare instruction pointer with original one Masami Hiramatsu
2017-12-27 2:00 ` Alexei Starovoitov
2017-12-26 7:47 ` [RFC PATCH bpf-next v2 3/4] error-injection: Separate error-injection from kprobe Masami Hiramatsu
2017-12-27 2:07 ` Alexei Starovoitov
2017-12-26 7:48 ` [RFC PATCH bpf-next v2 4/4] error-injection: Support fault injection framework Masami Hiramatsu
2017-12-27 2:12 ` Alexei Starovoitov
2017-12-27 8:09 ` Masami Hiramatsu
2017-12-27 22:49 ` Alexei Starovoitov
2017-12-28 1:38 ` Masami Hiramatsu
2017-12-28 3:49 ` Alexei Starovoitov
2017-12-28 7:51 ` Masami Hiramatsu
2017-12-29 1:11 ` Alexei Starovoitov
2017-12-29 7:34 ` Masami Hiramatsu
2018-01-04 16:07 ` [RFC PATCH bpf-next v2 0/4] Separate error injection table from kprobes Josef Bacik
2018-01-09 1:17 ` Masami Hiramatsu
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=151427438796.32561.4235654585430455286.stgit@devbox \
--to=mhiramat@kernel.org \
--cc=akinobu.mita@gmail.com \
--cc=ast@fb.com \
--cc=ast@kernel.org \
--cc=daniel@iogearbox.net \
--cc=darrick.wong@oracle.com \
--cc=davem@davemloft.net \
--cc=jbacik@fb.com \
--cc=josef@toxicpanda.com \
--cc=kernel-team@fb.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=rostedt@goodmis.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 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).