From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
To: Greg KH <gregkh@linuxfoundation.org>,
Jiri Kosina <jikos@kernel.org>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>,
Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
Yonghong Song <yhs@fb.com>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@kernel.org>
Cc: Tero Kristo <tero.kristo@linux.intel.com>,
linux-kernel@vger.kernel.org, linux-input@vger.kernel.org,
bpf@vger.kernel.org,
Benjamin Tissoires <benjamin.tissoires@redhat.com>
Subject: [RFC bpf-next v4 0/7] Introduce eBPF support for HID devices (new attempt)
Date: Thu, 21 Apr 2022 16:07:33 +0200 [thread overview]
Message-ID: <20220421140740.459558-1-benjamin.tissoires@redhat.com> (raw)
Hi,
so after the reviews from v3, and some discussion with Alexei, I am
back with a new version of HID-BPF.
This version is not complete (thus the RFC), but I'd like to share
it now to get initial feedback, in case I am too far from the actual
goal.
FTR, the goal is to provide some changes in the core verifier/btf so
that we can plug in HID-BPF independently from BPF core. This way we can
extend it without having to care about bpf-next.
The things I am not entirely sure are:
- do we need only fentry/fexit/fmod_ret BPF program types or should
programs that modify the data stream use a different kind?
- patch 3/7 is probably not the correct approach (see comments in the
patch itself)
We are missing quite a few bits here:
- selftests for patches 1 to 4
- add the ability to attach a program to a struct device, and run that
program only for that struct device
- when running through bpf_prog_test_run_opts, how can we ensure we are
talking to the correct device? (I have a feeling this is linked to the
previous point)
- how can we reconnect the device when a report descriptor fixup BPF
program is loaded (would it make sense to allow some notifications on
when a BPF program is attached/detached to a device, and which
function have been traced?)
Cheers,
Benjamin
Benjamin Tissoires (7):
bpf/btf: also allow kfunc in tracing programs
bpf/verifier: allow kfunc to return an allocated mem
error-inject: add new type that carries if the function is non
sleepable
btf: Add a new kfunc set which allows to mark a function to be
sleepable
HID: initial BPF new way implementation
samples/bpf: add new hid_mouse example
selftests/bpf: add tests for the HID-bpf initial implementation
drivers/hid/hid-core.c | 115 +++++
include/asm-generic/error-injection.h | 1 +
include/linux/btf.h | 8 +
include/linux/hid_bpf.h | 29 ++
kernel/bpf/btf.c | 50 +-
kernel/bpf/verifier.c | 76 ++-
lib/error-inject.c | 2 +
samples/bpf/.gitignore | 1 +
samples/bpf/Makefile | 23 +
samples/bpf/hid_mouse.bpf.c | 59 +++
samples/bpf/hid_mouse.c | 131 +++++
tools/testing/selftests/bpf/config | 3 +
tools/testing/selftests/bpf/prog_tests/hid.c | 482 +++++++++++++++++++
tools/testing/selftests/bpf/progs/hid.c | 32 ++
14 files changed, 987 insertions(+), 25 deletions(-)
create mode 100644 include/linux/hid_bpf.h
create mode 100644 samples/bpf/hid_mouse.bpf.c
create mode 100644 samples/bpf/hid_mouse.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/hid.c
create mode 100644 tools/testing/selftests/bpf/progs/hid.c
--
2.35.1
next reply other threads:[~2022-04-21 14:07 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-21 14:07 Benjamin Tissoires [this message]
2022-04-21 14:07 ` [RFC bpf-next v4 1/7] bpf/btf: also allow kfunc in tracing programs Benjamin Tissoires
2022-04-21 14:07 ` [RFC bpf-next v4 2/7] bpf/verifier: allow kfunc to return an allocated mem Benjamin Tissoires
2022-04-26 4:08 ` Alexei Starovoitov
2022-04-26 7:30 ` Benjamin Tissoires
2022-04-30 3:25 ` Alexei Starovoitov
2022-04-30 7:17 ` Benjamin Tissoires
2022-04-21 14:07 ` [RFC bpf-next v4 3/7] error-inject: add new type that carries if the function is non sleepable Benjamin Tissoires
2022-04-26 4:11 ` Alexei Starovoitov
2022-04-26 7:52 ` Benjamin Tissoires
2022-04-30 3:29 ` Alexei Starovoitov
2022-04-30 7:24 ` Benjamin Tissoires
2022-04-21 14:07 ` [RFC bpf-next v4 4/7] btf: Add a new kfunc set which allows to mark a function to be sleepable Benjamin Tissoires
2022-04-26 4:12 ` Alexei Starovoitov
2022-04-21 14:07 ` [RFC bpf-next v4 5/7] HID: initial BPF new way implementation Benjamin Tissoires
2022-04-26 4:19 ` Alexei Starovoitov
2022-04-21 14:07 ` [RFC bpf-next v4 6/7] samples/bpf: add new hid_mouse example Benjamin Tissoires
2022-04-21 14:07 ` [RFC bpf-next v4 7/7] selftests/bpf: add tests for the HID-bpf initial implementation Benjamin Tissoires
2022-04-26 4:03 ` [RFC bpf-next v4 0/7] Introduce eBPF support for HID devices (new attempt) Alexei Starovoitov
2022-04-26 7:20 ` Benjamin Tissoires
2022-04-30 3:00 ` Alexei Starovoitov
2022-04-30 7:12 ` Benjamin Tissoires
2022-05-02 21:43 ` Benjamin Tissoires
2022-05-12 4:16 ` Alexei Starovoitov
2022-05-13 16:59 ` Benjamin Tissoires
2022-05-12 4:23 ` Alexei Starovoitov
2022-05-13 17:02 ` Benjamin Tissoires
2022-05-13 19:42 ` Alexei Starovoitov
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=20220421140740.459558-1-benjamin.tissoires@redhat.com \
--to=benjamin.tissoires@redhat.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=gregkh@linuxfoundation.org \
--cc=jikos@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=kafai@fb.com \
--cc=kpsingh@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=tero.kristo@linux.intel.com \
--cc=yhs@fb.com \
/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
all inboxes | Powered by JetHome®