[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210219145922.63655-1-bjorn.topel@gmail.com>
Date: Fri, 19 Feb 2021 15:59:20 +0100
From: Björn Töpel <bjorn.topel@...il.com>
To: ast@...nel.org, daniel@...earbox.net, netdev@...r.kernel.org,
bpf@...r.kernel.org
Cc: Björn Töpel <bjorn.topel@...il.com>,
bjorn.topel@...el.com, maciej.fijalkowski@...el.com,
hawk@...nel.org, toke@...hat.com, magnus.karlsson@...el.com,
john.fastabend@...il.com, kuba@...nel.org, davem@...emloft.net
Subject: [PATCH bpf-next 0/2] Optimize bpf_redirect_map()/xdp_do_redirect()
Hi XDP-folks,
This two patch series contain two optimizations for the
bpf_redirect_map() helper and the xdp_do_redirect() function.
The bpf_redirect_map() optimization is about avoiding the map lookup
dispatching. Instead of having a switch-statement and selecting the
correct lookup function, we let the verifier patch the
bpf_redirect_map() call to a specific lookup function. This way the
run-time lookup is avoided.
The xdp_do_redirect() patch restructures the code, so that the map
pointer indirection can be avoided.
Performance-wise I got 3% improvement for XSKMAP
(sample:xdpsock/rx-drop), and 4% (sample:xdp_redirect_map) on my
machine.
More details in each commit. Changes since the RFC is outlined in each
commit.
Cheers,
Björn
Björn Töpel (2):
bpf, xdp: per-map bpf_redirect_map functions for XDP
bpf, xdp: restructure redirect actions
include/linux/bpf.h | 20 ++--
include/linux/filter.h | 13 ++-
include/net/xdp_sock.h | 6 +-
include/trace/events/xdp.h | 66 ++++++-----
kernel/bpf/cpumap.c | 3 +-
kernel/bpf/devmap.c | 5 +-
kernel/bpf/verifier.c | 28 +++--
net/core/filter.c | 219 ++++++++++++++++++-------------------
net/xdp/xskmap.c | 1 -
9 files changed, 192 insertions(+), 169 deletions(-)
base-commit: 7b1e385c9a488de9291eaaa412146d3972e9dec5
--
2.27.0
Powered by blists - more mailing lists