bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next V2 0/4] Bulk optimization for XDP cpumap redirect
@ 2019-04-12 15:07 Jesper Dangaard Brouer
  2019-04-12 15:07 ` [PATCH bpf-next V2 1/4] bpf: cpumap use ptr_ring_consume_batched Jesper Dangaard Brouer
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Jesper Dangaard Brouer @ 2019-04-12 15:07 UTC (permalink / raw)
  To: netdev, Daniel Borkmann, Alexei Starovoitov, David S. Miller
  Cc: songliubraving, Toke Høiland-Jørgensen,
	Ilias Apalodimas, Jesper Dangaard Brouer, ecree, bpf

This patchset utilize a number of different kernel bulk APIs for optimizing
the performance for the XDP cpumap redirect feature.

Benchmark details are available here:
 https://github.com/xdp-project/xdp-project/blob/master/areas/cpumap/cpumap03-optimizations.org

Performance measurements can be considered micro benchmarks, as they measure
dropping packets at different stages in the network stack.
Summary based on above:

Baseline benchmarks
- baseline-redirect: UdpNoPorts: 3,180,074
- baseline-redirect: iptables-raw drop: 6,193,534

Patch1: bpf: cpumap use ptr_ring_consume_batched
- redirect: UdpNoPorts: 3,327,729
- redirect: iptables-raw drop: 6,321,540

Patch2: net: core: introduce build_skb_around
- redirect: UdpNoPorts: 3,221,303
- redirect: iptables-raw drop: 6,320,066

Patch3: bpf: cpumap do bulk allocation of SKBs
- redirect: UdpNoPorts: 3,290,563
- redirect: iptables-raw drop: 6,650,112

Patch4: bpf: cpumap memory prefetchw optimizations for struct page
- redirect: UdpNoPorts: 3,520,250
- redirect: iptables-raw drop: 7,649,604

In this V2 submission I have chosen drop the SKB-list patch using
netif_receive_skb_list() as it was not showing a performance improvement for
these micro benchmarks.

---

Jesper Dangaard Brouer (4):
      bpf: cpumap use ptr_ring_consume_batched
      net: core: introduce build_skb_around
      bpf: cpumap do bulk allocation of SKBs
      bpf: cpumap memory prefetchw optimizations for struct page


 include/linux/skbuff.h |    2 +
 kernel/bpf/cpumap.c    |   53 +++++++++++++++++++++++++-----------
 net/core/skbuff.c      |   71 +++++++++++++++++++++++++++++++++++-------------
 3 files changed, 91 insertions(+), 35 deletions(-)

--

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

end of thread, other threads:[~2019-04-18  2:15 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-12 15:07 [PATCH bpf-next V2 0/4] Bulk optimization for XDP cpumap redirect Jesper Dangaard Brouer
2019-04-12 15:07 ` [PATCH bpf-next V2 1/4] bpf: cpumap use ptr_ring_consume_batched Jesper Dangaard Brouer
2019-04-12 15:07 ` [PATCH bpf-next V2 2/4] net: core: introduce build_skb_around Jesper Dangaard Brouer
2019-04-12 17:59   ` Song Liu
2019-04-17  3:01   ` Alexei Starovoitov
2019-04-17  5:20     ` Eric Dumazet
2019-04-12 15:07 ` [PATCH bpf-next V2 3/4] bpf: cpumap do bulk allocation of SKBs Jesper Dangaard Brouer
2019-04-12 18:01   ` Song Liu
2019-04-12 15:07 ` [PATCH bpf-next V2 4/4] bpf: cpumap memory prefetchw optimizations for struct page Jesper Dangaard Brouer
2019-04-18  2:15 ` [PATCH bpf-next V2 0/4] Bulk optimization for XDP cpumap redirect Alexei Starovoitov

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