[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAADnVQL1x8AJmCOjesA_6Z3XprFVEdWgbREfpn3CC-XO8k4PDA@mail.gmail.com>
Date: Thu, 19 Dec 2019 21:21:39 -0800
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
To: Björn Töpel <bjorn.topel@...il.com>
Cc: Network Development <netdev@...r.kernel.org>,
Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
bpf <bpf@...r.kernel.org>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <jakub.kicinski@...ronome.com>,
Jesper Dangaard Brouer <hawk@...nel.org>,
John Fastabend <john.fastabend@...il.com>,
"Karlsson, Magnus" <magnus.karlsson@...el.com>,
Jonathan Lemon <jonathan.lemon@...il.com>
Subject: Re: [PATCH bpf-next v2 0/8] Simplify xdp_do_redirect_map()/xdp_do_flush_map()
and XDP maps
On Wed, Dec 18, 2019 at 10:10 PM Björn Töpel <bjorn.topel@...il.com> wrote:
>
> This series aims to simplify the XDP maps and
> xdp_do_redirect_map()/xdp_do_flush_map(), and to crank out some more
> performance from XDP_REDIRECT scenarios.
>
> The first part of the series simplifies all XDP_REDIRECT capable maps,
> so that __XXX_flush_map() does not require the map parameter, by
> moving the flush list from the map to global scope.
>
> This results in that the map_to_flush member can be removed from
> struct bpf_redirect_info, and its corresponding logic.
>
> Simpler code, and more performance due to that checks/code per-packet
> is moved to flush.
>
> Pre-series performance:
> $ sudo taskset -c 22 ./xdpsock -i enp134s0f0 -q 20 -n 1 -r -z
>
> sock0@...134s0f0:20 rxdrop xdp-drv
> pps pkts 1.00
> rx 20,797,350 230,942,399
> tx 0 0
>
> $ sudo ./xdp_redirect_cpu --dev enp134s0f0 --cpu 22 xdp_cpu_map0
>
> Running XDP/eBPF prog_name:xdp_cpu_map5_lb_hash_ip_pairs
> XDP-cpumap CPU:to pps drop-pps extra-info
> XDP-RX 20 7723038 0 0
> XDP-RX total 7723038 0
> cpumap_kthread total 0 0 0
> redirect_err total 0 0
> xdp_exception total 0 0
>
> Post-series performance:
> $ sudo taskset -c 22 ./xdpsock -i enp134s0f0 -q 20 -n 1 -r -z
>
> sock0@...134s0f0:20 rxdrop xdp-drv
> pps pkts 1.00
> rx 21,524,979 86,835,327
> tx 0 0
>
> $ sudo ./xdp_redirect_cpu --dev enp134s0f0 --cpu 22 xdp_cpu_map0
>
> Running XDP/eBPF prog_name:xdp_cpu_map5_lb_hash_ip_pairs
> XDP-cpumap CPU:to pps drop-pps extra-info
> XDP-RX 20 7840124 0 0
> XDP-RX total 7840124 0
> cpumap_kthread total 0 0 0
> redirect_err total 0 0
> xdp_exception total 0 0
>
> Results: +3.5% and +1.5% for the ubenchmarks.
>
> v1->v2 [1]:
> * Removed 'unused-variable' compiler warning (Jakub)
>
> [1] https://lore.kernel.org/bpf/20191218105400.2895-1-bjorn.topel@gmail.com/
My understanding that outstanding discussions are not objecting to the
core ideas
of the patch set, hence applied. Thanks
Powered by blists - more mailing lists