[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1538913418-16039-1-git-send-email-quentin.monnet@netronome.com>
Date: Sun, 7 Oct 2018 12:56:46 +0100
From: Quentin Monnet <quentin.monnet@...ronome.com>
To: Daniel Borkmann <daniel@...earbox.net>,
Alexei Starovoitov <ast@...nel.org>
Cc: netdev@...r.kernel.org, oss-drivers@...ronome.com,
Quentin Monnet <quentin.monnet@...ronome.com>
Subject: [PATCH bpf-next 00/12] nfp: bpf: add support for BPF-to-BPF function calls
This patch series adds support for hardware offload of programs containing
BPF-to-BPF function calls. First, a new callback is added to the kernel
verifier, to collect information after the main part of the verification
has been performed. Then support for BPF-to-BPF calls is incrementally
added to the nfp driver, before offloading programs containing such calls
is eventually allowed by lifting the restriction in the kernel verifier, in
the last patch. Please refer to individual patches for details.
Many thanks to Jiong and Jakub for their precious help and contribution on
the main patches for the JIT-compiler, and everything related to stack
accesses.
Quentin Monnet (12):
bpf: add verifier callback to get stack usage info for offloaded progs
nfp: bpf: rename nfp_prog->stack_depth as nfp_prog->stack_frame_depth
nfp: bpf: copy eBPF subprograms information from kernel verifier
nfp: bpf: ignore helper-related checks for BPF calls in nfp verifier
nfp: bpf: account for BPF-to-BPF calls when preparing nfp JIT
nfp: bpf: add main logics for BPF-to-BPF calls support in nfp driver
nfp: bpf: account for additional stack usage when checking stack limit
nfp: bpf: update fixup function for BPF-to-BPF calls support
nfp: bpf: fix return address from register-saving subroutine to callee
nfp: bpf: optimise save/restore for R6~R9 based on register usage
nfp: bpf: support pointers to other stack frames for BPF-to-BPF calls
bpf: allow offload of programs with BPF-to-BPF function calls
drivers/net/ethernet/netronome/nfp/bpf/jit.c | 381 ++++++++++++++++++++--
drivers/net/ethernet/netronome/nfp/bpf/main.h | 52 ++-
drivers/net/ethernet/netronome/nfp/bpf/offload.c | 11 +-
drivers/net/ethernet/netronome/nfp/bpf/verifier.c | 141 +++++++-
drivers/net/ethernet/netronome/nfp/nfp_asm.h | 9 +
drivers/net/netdevsim/bpf.c | 8 +-
include/linux/bpf.h | 1 +
include/linux/bpf_verifier.h | 1 +
kernel/bpf/offload.c | 18 +
kernel/bpf/verifier.c | 13 +-
10 files changed, 589 insertions(+), 46 deletions(-)
--
2.7.4
Powered by blists - more mailing lists