linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH hid v11 00/14] Introduce eBPF support for HID devices
@ 2022-10-25  9:34 Benjamin Tissoires
  2022-10-25  9:34 ` [PATCH hid v11 01/14] HID: Kconfig: split HID support and hid-core compilation Benjamin Tissoires
                   ` (14 more replies)
  0 siblings, 15 replies; 26+ messages in thread
From: Benjamin Tissoires @ 2022-10-25  9:34 UTC (permalink / raw)
  To: Greg KH, Jiri Kosina, Jonathan Corbet, Shuah Khan
  Cc: Tero Kristo, linux-kernel, linux-input, bpf, linux-kselftest,
	linux-doc, Benjamin Tissoires

Hi,

and here comes the v11 of the HID-BPF series.

Again, for a full explanation of HID-BPF, please refer to the last patch
in this series (14/14).

Now that the bpf-core changes are all merged in v6.1, it is
time to have that series entirely relying on HID, so it can get
merged into the HID tree.

Compared to v10, the most notable change is in the selftests and the
samples: they are now namespaced into hid, not bpf.

This means that HID-BPF has no more conflicts with the bpf tree.

One other interesting change is in patch 4/14. I managed to reduce
the scope of the embedded bpf programs, by tricking the refcount.
I am planning on submitting an RFC for embedding those changes in
bpf core (a map that doesn't increment refcount and a cleanup mechanism)
but this can come as a later improvement.
This new kind of maps and mechanisms might also be useful for other
subsystems.

Cheers,
Benjamin

Benjamin Tissoires (14):
  HID: Kconfig: split HID support and hid-core compilation
  HID: initial BPF implementation
  selftests: add tests for the HID-bpf initial implementation
  HID: bpf jmp table: simplify the logic of cleaning up programs
  HID: bpf: allocate data memory for device_event BPF programs
  selftests/hid: add test to change the report size
  HID: bpf: introduce hid_hw_request()
  selftests/hid: add tests for bpf_hid_hw_request
  HID: bpf: allow to change the report descriptor
  selftests/hid: add report descriptor fixup tests
  selftests/hid: Add a test for BPF_F_INSERT_HEAD
  samples/hid: add new hid BPF example
  samples/hid: add Surface Dial example
  Documentation: add HID-BPF docs

 Documentation/hid/hid-bpf.rst                 | 513 +++++++++++
 Documentation/hid/index.rst                   |   1 +
 MAINTAINERS                                   |   3 +
 drivers/Makefile                              |   2 +-
 drivers/hid/Kconfig                           |  20 +-
 drivers/hid/Makefile                          |   2 +
 drivers/hid/bpf/Kconfig                       |  17 +
 drivers/hid/bpf/Makefile                      |  11 +
 drivers/hid/bpf/entrypoints/Makefile          |  93 ++
 drivers/hid/bpf/entrypoints/README            |   4 +
 drivers/hid/bpf/entrypoints/entrypoints.bpf.c |  34 +
 .../hid/bpf/entrypoints/entrypoints.lskel.h   | 368 ++++++++
 drivers/hid/bpf/hid_bpf_dispatch.c            | 526 +++++++++++
 drivers/hid/bpf/hid_bpf_dispatch.h            |  28 +
 drivers/hid/bpf/hid_bpf_jmp_table.c           | 572 ++++++++++++
 drivers/hid/hid-core.c                        |  32 +-
 include/linux/hid.h                           |   5 +
 include/linux/hid_bpf.h                       | 148 +++
 include/uapi/linux/hid_bpf.h                  |  25 +
 samples/hid/.gitignore                        |   8 +
 samples/hid/Makefile                          | 246 +++++
 samples/hid/Makefile.target                   |  75 ++
 samples/hid/hid_mouse.bpf.c                   | 134 +++
 samples/hid/hid_mouse.c                       | 160 ++++
 samples/hid/hid_surface_dial.bpf.c            | 161 ++++
 samples/hid/hid_surface_dial.c                | 231 +++++
 tools/include/uapi/linux/hid.h                |  62 ++
 tools/include/uapi/linux/hid_bpf.h            |  25 +
 tools/testing/selftests/Makefile              |   1 +
 tools/testing/selftests/hid/.gitignore        |   4 +
 tools/testing/selftests/hid/Makefile          | 242 +++++
 tools/testing/selftests/hid/config            |  20 +
 tools/testing/selftests/hid/hid_bpf.c         | 846 ++++++++++++++++++
 tools/testing/selftests/hid/progs/hid.c       | 206 +++++
 34 files changed, 4815 insertions(+), 10 deletions(-)
 create mode 100644 Documentation/hid/hid-bpf.rst
 create mode 100644 drivers/hid/bpf/Kconfig
 create mode 100644 drivers/hid/bpf/Makefile
 create mode 100644 drivers/hid/bpf/entrypoints/Makefile
 create mode 100644 drivers/hid/bpf/entrypoints/README
 create mode 100644 drivers/hid/bpf/entrypoints/entrypoints.bpf.c
 create mode 100644 drivers/hid/bpf/entrypoints/entrypoints.lskel.h
 create mode 100644 drivers/hid/bpf/hid_bpf_dispatch.c
 create mode 100644 drivers/hid/bpf/hid_bpf_dispatch.h
 create mode 100644 drivers/hid/bpf/hid_bpf_jmp_table.c
 create mode 100644 include/linux/hid_bpf.h
 create mode 100644 include/uapi/linux/hid_bpf.h
 create mode 100644 samples/hid/.gitignore
 create mode 100644 samples/hid/Makefile
 create mode 100644 samples/hid/Makefile.target
 create mode 100644 samples/hid/hid_mouse.bpf.c
 create mode 100644 samples/hid/hid_mouse.c
 create mode 100644 samples/hid/hid_surface_dial.bpf.c
 create mode 100644 samples/hid/hid_surface_dial.c
 create mode 100644 tools/include/uapi/linux/hid.h
 create mode 100644 tools/include/uapi/linux/hid_bpf.h
 create mode 100644 tools/testing/selftests/hid/.gitignore
 create mode 100644 tools/testing/selftests/hid/Makefile
 create mode 100644 tools/testing/selftests/hid/config
 create mode 100644 tools/testing/selftests/hid/hid_bpf.c
 create mode 100644 tools/testing/selftests/hid/progs/hid.c

-- 
2.36.1


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

end of thread, other threads:[~2022-11-04 11:41 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-25  9:34 [PATCH hid v11 00/14] Introduce eBPF support for HID devices Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 01/14] HID: Kconfig: split HID support and hid-core compilation Benjamin Tissoires
2022-10-29 13:55   ` kernel test robot
2022-10-29 17:57   ` kernel test robot
2022-10-25  9:34 ` [PATCH hid v11 02/14] HID: initial BPF implementation Benjamin Tissoires
2022-10-25 22:52   ` Alexei Starovoitov
2022-10-27  9:11     ` Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 03/14] selftests: add tests for the HID-bpf initial implementation Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 04/14] HID: bpf jmp table: simplify the logic of cleaning up programs Benjamin Tissoires
2022-10-28  3:13   ` kernel test robot
2022-10-25  9:34 ` [PATCH hid v11 05/14] HID: bpf: allocate data memory for device_event BPF programs Benjamin Tissoires
2022-10-29 13:45   ` kernel test robot
2022-10-25  9:34 ` [PATCH hid v11 06/14] selftests/hid: add test to change the report size Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 07/14] HID: bpf: introduce hid_hw_request() Benjamin Tissoires
2022-11-02 12:11   ` Dan Carpenter
2022-10-25  9:34 ` [PATCH hid v11 08/14] selftests/hid: add tests for bpf_hid_hw_request Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 09/14] HID: bpf: allow to change the report descriptor Benjamin Tissoires
2022-10-31 15:22   ` kernel test robot
2022-10-25  9:34 ` [PATCH hid v11 10/14] selftests/hid: add report descriptor fixup tests Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 11/14] selftests/hid: Add a test for BPF_F_INSERT_HEAD Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 12/14] samples/hid: add new hid BPF example Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 13/14] samples/hid: add Surface Dial example Benjamin Tissoires
2022-10-25  9:34 ` [PATCH hid v11 14/14] Documentation: add HID-BPF docs Benjamin Tissoires
2022-10-26 13:21   ` Bagas Sanjaya
2022-10-26 13:44     ` Jonathan Corbet
2022-11-04 11:41 ` [PATCH hid v11 00/14] Introduce eBPF support for HID devices Tero Kristo

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).