public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH 0/2] [RFC] BPF testing
@ 2019-07-24  8:03 Richard Palethorpe
  2019-07-24  8:03 ` [LTP] [PATCH 1/2] Essential headers for BPF map creation Richard Palethorpe
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Richard Palethorpe @ 2019-07-24  8:03 UTC (permalink / raw)
  To: ltp

Hello,

This patch set introduces a very basic test which kicks the tires of the bpf
system call. It doesn't actually load a eBPF program, I will create another
test for that. However I have some concerns which I will discuss while doing
that.

There are already extensive BPF tests in the kernel selftests. These appear to
be quite complex and test a variety of functionality. They also are far less
structured than LTP's modern tests and are tied to the kernel tree which makes
using them in QA a pain. There are also some tests in the BCC project, which
may test the kernel as a byproduct.

So there are a number of options which are not necessarily mutually exclusive:

1) Port (some of) the selftests to the LTP.
2) Port the LTP library to the selftests.
3) Focus the LTP's BPF tests on reproducing specific high impact bugs.

This patch set copies in the necessary headers so that we have zero external
dependencies. I will also use raw byte code for the program test which is at
least acceptable for trivial programs. So we do not need BCC or Clang/LLVM
with eBPF support or matching kernel sources to generate offsets into internal
structures.

For the time being atleast my preference would be for (3) while avoiding
taking on any dependencies to ensure those tests are run by users mostly
ignorant of BPF, but are still exposed to critical bugs in the BPF stack.

Richard Palethorpe (2):
  Essential headers for BPF map creation
  BPF: Sanity check creating and updating maps

 include/lapi/bpf.h                        | 242 ++++++++++++++++++++++
 include/lapi/syscalls/aarch64.in          |   1 +
 include/lapi/syscalls/i386.in             |   1 +
 include/lapi/syscalls/s390.in             |   1 +
 include/lapi/syscalls/sparc.in            |   1 +
 include/lapi/syscalls/x86_64.in           |   1 +
 runtest/syscalls                          |   2 +
 testcases/kernel/syscalls/bpf/.gitignore  |   1 +
 testcases/kernel/syscalls/bpf/Makefile    |  10 +
 testcases/kernel/syscalls/bpf/bpf_map01.c | 138 ++++++++++++
 10 files changed, 398 insertions(+)
 create mode 100644 include/lapi/bpf.h
 create mode 100644 testcases/kernel/syscalls/bpf/.gitignore
 create mode 100644 testcases/kernel/syscalls/bpf/Makefile
 create mode 100644 testcases/kernel/syscalls/bpf/bpf_map01.c

-- 
2.22.0


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

end of thread, other threads:[~2019-07-30 13:44 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-24  8:03 [LTP] [PATCH 0/2] [RFC] BPF testing Richard Palethorpe
2019-07-24  8:03 ` [LTP] [PATCH 1/2] Essential headers for BPF map creation Richard Palethorpe
2019-07-24  9:27   ` Petr Vorel
2019-07-24  9:55     ` Richard Palethorpe
2019-07-24  8:03 ` [LTP] [PATCH 2/2] BPF: Sanity check creating and updating maps Richard Palethorpe
2019-07-24  9:18   ` Petr Vorel
2019-07-24 12:15     ` Richard Palethorpe
2019-07-24  9:30 ` [LTP] [PATCH 0/2] [RFC] BPF testing Petr Vorel
2019-07-25 14:23 ` Cyril Hrubis
2019-07-29 10:02   ` Richard Palethorpe
2019-07-30 13:44 ` [LTP] [PATCH v2 1/4] BPF: Essential headers for map creation Richard Palethorpe
2019-07-30 13:44   ` [LTP] [PATCH v2 2/4] BPF: Sanity check creating and updating maps Richard Palethorpe
2019-07-30 13:44   ` [LTP] [PATCH v2 3/4] BPF: Essential headers for a basic program Richard Palethorpe
2019-07-30 13:44   ` [LTP] [PATCH v2 4/4] BPF: Sanity check creating a program Richard Palethorpe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox