[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180117010128.22709-1-daniel@iogearbox.net>
Date: Wed, 17 Jan 2018 02:01:28 +0100
From: Daniel Borkmann <daniel@...earbox.net>
To: davem@...emloft.net
Cc: daniel@...earbox.net, ast@...nel.org, netdev@...r.kernel.org
Subject: pull-request: bpf-next 2018-01-17
Hi David,
The following pull-request contains BPF updates for your *net-next* tree.
The main changes are:
1) Add initial BPF map offloading for nfp driver. Currently only
programs were supported so far w/o being able to access maps.
Offloaded programs are right now only allowed to perform map
lookups, and control path is responsible for populating the
maps. BPF core infrastructure along with nfp implementation is
provided, from Jakub.
2) Various follow-ups to Josef's BPF error injections. More
specifically that includes: properly check whether the error
injectable event is on function entry or not, remove the percpu
bpf_kprobe_override and rather compare instruction pointer
with original one, separate error-injection from kprobes since
it's not limited to it, add injectable error types in order to
specify what is the expected type of failure, and last but not
least also support the kernel's fault injection framework, all
from Masami.
3) Various misc improvements and cleanups to the libbpf Makefile.
That is, fix permissions when installing BPF header files, remove
unused variables and functions, and also install the libbpf.h
header, from Jesper.
4) When offloading to nfp JIT and the BPF insn is unsupported in the
JIT, then reject right at verification time. Also fix libbpf with
regards to ELF section name matching by properly treating the
program type as prefix. Both from Quentin.
5) Add -DPACKAGE to bpftool when including bfd.h for the disassembler.
This is needed, for example, when building libfd from source as
bpftool doesn't supply a config.h for bfd.h. Fix from Jiong.
6) xdp_convert_ctx_access() is simplified since it doesn't need to
set target size during verification, from Jesper.
7) Let bpftool properly recognize BPF_PROG_TYPE_CGROUP_DEVICE
program types, from Roman.
8) Various functions in BPF cpumap were not declared static, from Wei.
9) Fix a double semicolon in BPF samples, from Luis.
Please consider pulling these changes from:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
Thanks a lot!
----------------------------------------------------------------
The following changes since commit 6bd39bc3da0f4a301fae69c4a32db2768f5118be:
Merge branch 'hns3-add-some-new-features-and-fix-some-bugs' (2018-01-12 10:12:33 -0500)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
for you to fetch changes up to e8a9d9683c8a62f917c19e57f1618363fb9ed04e:
Merge branch 'bpf-libbpf-cleanups' (2018-01-17 01:18:12 +0100)
----------------------------------------------------------------
Alexei Starovoitov (1):
Merge branch 'error-injection'
Daniel Borkmann (3):
Merge branch 'bpf-nfp-map-offload'
Merge branch 'bpf-various-improvements'
Merge branch 'bpf-libbpf-cleanups'
Jakub Kicinski (18):
bpf: add map_alloc_check callback
bpf: hashtab: move attribute validation before allocation
bpf: hashtab: move checks out of alloc function
bpf: add helper for copying attrs to struct bpf_map
bpf: rename bpf_dev_offload -> bpf_prog_offload
bpf: offload: factor out netdev checking at allocation time
bpf: offload: add map offload infrastructure
nfp: bpf: add map data structure
nfp: bpf: add basic control channel communication
nfp: bpf: implement helpers for FW map ops
nfp: bpf: parse function call and map capabilities
nfp: bpf: add helpers for updating immediate instructions
nfp: bpf: add verification and codegen for map lookups
nfp: bpf: add support for reading map memory
nfp: bpf: implement bpf map offload
bpf: offload: make bpf_offload_dev_match() reject host+host case
bpf: annotate bpf_insn_print_t with __printf
nfp: bpf: print map lookup problems into verifier log
Jesper Dangaard Brouer (4):
bpf: simplify xdp_convert_ctx_access for xdp_rxq_info
libbpf: install the header file libbpf.h
libbpf: cleanup Makefile, remove unused elements
libbpf: Makefile set specified permission mode
Jiong Wang (1):
tools: bpftool: add -DPACKAGE when including bfd.h
Luis de Bethencourt (1):
samples/bpf: Fix trailing semicolon
Masami Hiramatsu (5):
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: Add injectable error types
error-injection: Support fault injection framework
Quentin Monnet (2):
libbpf: fix string comparison for guessing eBPF program type
nfp: bpf: reject program on instructions unknown to the JIT compiler
Roman Gushchin (1):
bpftool: recognize BPF_PROG_TYPE_CGROUP_DEVICE programs
Wei Yongjun (1):
bpf: cpumap: make some functions static
Documentation/fault-injection/fault-injection.txt | 68 ++++
arch/Kconfig | 2 +-
arch/x86/Kconfig | 2 +-
arch/x86/include/asm/error-injection.h | 13 +
arch/x86/include/asm/kprobes.h | 4 +-
arch/x86/kernel/kprobes/ftrace.c | 14 -
arch/x86/lib/Makefile | 1 +
arch/x86/lib/error-inject.c | 19 +
drivers/net/ethernet/netronome/nfp/Makefile | 1 +
drivers/net/ethernet/netronome/nfp/bpf/cmsg.c | 446 +++++++++++++++++++++
drivers/net/ethernet/netronome/nfp/bpf/fw.h | 103 +++++
drivers/net/ethernet/netronome/nfp/bpf/jit.c | 168 +++++++-
drivers/net/ethernet/netronome/nfp/bpf/main.c | 60 ++-
drivers/net/ethernet/netronome/nfp/bpf/main.h | 96 ++++-
drivers/net/ethernet/netronome/nfp/bpf/offload.c | 106 ++++-
drivers/net/ethernet/netronome/nfp/bpf/verifier.c | 55 +++
drivers/net/ethernet/netronome/nfp/nfp_app.h | 9 +
drivers/net/ethernet/netronome/nfp/nfp_asm.c | 58 +++
drivers/net/ethernet/netronome/nfp/nfp_asm.h | 4 +
drivers/net/ethernet/netronome/nfp/nfp_net.h | 12 +
.../net/ethernet/netronome/nfp/nfp_net_common.c | 7 +
fs/btrfs/disk-io.c | 4 +-
fs/btrfs/free-space-cache.c | 4 +-
include/asm-generic/error-injection.h | 35 ++
include/asm-generic/vmlinux.lds.h | 14 +-
include/linux/bpf.h | 76 +++-
include/linux/error-injection.h | 27 ++
include/linux/kprobes.h | 1 -
include/linux/module.h | 7 +-
include/linux/netdevice.h | 6 +
include/uapi/linux/bpf.h | 3 +-
kernel/Makefile | 1 +
kernel/bpf/cpumap.c | 31 +-
kernel/bpf/devmap.c | 8 +-
kernel/bpf/disasm.h | 4 +-
kernel/bpf/hashtab.c | 103 +++--
kernel/bpf/lpm_trie.c | 7 +-
kernel/bpf/offload.c | 222 +++++++++-
kernel/bpf/sockmap.c | 8 +-
kernel/bpf/stackmap.c | 6 +-
kernel/bpf/syscall.c | 71 +++-
kernel/bpf/verifier.c | 7 +
kernel/fail_function.c | 349 ++++++++++++++++
kernel/kprobes.c | 163 --------
kernel/module.c | 8 +-
kernel/trace/Kconfig | 4 +-
kernel/trace/bpf_trace.c | 11 +-
kernel/trace/trace_kprobe.c | 33 +-
kernel/trace/trace_probe.h | 12 +-
lib/Kconfig.debug | 14 +
lib/Makefile | 1 +
lib/error-inject.c | 242 +++++++++++
net/core/filter.c | 7 +-
samples/bpf/xdp_monitor_kern.c | 2 +-
tools/bpf/bpftool/Makefile | 2 +-
tools/bpf/bpftool/prog.c | 1 +
tools/build/feature/Makefile | 2 +-
tools/include/uapi/linux/bpf.h | 1 +
tools/lib/bpf/Makefile | 20 +-
tools/lib/bpf/libbpf.c | 2 +-
60 files changed, 2365 insertions(+), 402 deletions(-)
create mode 100644 arch/x86/include/asm/error-injection.h
create mode 100644 arch/x86/lib/error-inject.c
create mode 100644 drivers/net/ethernet/netronome/nfp/bpf/cmsg.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
Powered by blists - more mailing lists